转换带有多个dict外观的字符串



解释

我正在使用 psycopg2 存储我的结果并恢复它们。我在表中存储这样的列表:

[{"vlan": "715", "intf": "0/3", "intf2": "0/4"}, {"vlan": "", "intf": "0/5", "intf2": "0/6"}, {"vlan": "", "intf": "0/7", "intf2": ""}]

当我在此表上进行选择时,这是输出:

[('[{"vlan": "715", "intf": "0/3", "intf2": "0/4"}, {"vlan": "", "intf": "0/5", "intf2": "0/6"}, {"vlan": "", "intf": "0/7", "intf2": ""}]',)]

要打印字符串,我做:

test = [('[{"vlan": "715", "intf": "0/3", "intf2": "0/4"}, {"vlan": "", "intf": "0/5", "intf2": "0/6"}, {"vlan": "", "intf": "0/7", "intf2": ""}]',)]
print(type(test))
test = test[0][0]
print(type(test))
out:
<class 'list'>
<class 'str'>

我尝试过的

我已经尝试了模块 JSON ast ,但是由于我认为的多个dict,我没有成功。

我想做的

我想浏览dict(当前是字符串(,并具有这样的结果:

for om in test
    print(om["intf"])
out:
0/3
0/5
0/7

或类似的东西。

希望您了解我想做什么。

您有一个嵌入在JSON字符串中的DICT的列表。

使用此代码提取您的数据:

import json
test = [('[{"vlan": "715", "intf": "0/3", "intf2": "0/4"}, {"vlan": "", "intf": "0/5", "intf2": "0/6"}, {"vlan": "", "intf": "0/7", "intf2": ""}]',)]
j = json.loads(test[0][0]) #list of dicts
for d in j:
    print(d['intf'])

输出:

0/3
0/5
0/7

json.loads会更好:

import json
lot = json.loads(lot[0][0])
for i in lot:
    print(i['intf'])

输出:

0/3
0/5
0/7
>>> 

最新更新