解释
我正在使用 psycopg2 来存储我的结果并恢复它们。我在我的表中存储了一个这样的列表:
[{"vlan": "715", "intf": "0/3", "intf2": "0/4"}, {"vlan": "", "intf": "0/5", "intf2": "0/6"}, {"vlan": "", "intf": "0/7", "intf2": ""}]
当我在此表上执行 SELECT 时,输出如下:
[('[{"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 但我没有成功,因为我认为是多个字典。
我想做什么
我想浏览字典(目前是一个字符串)并得到这样的结果:
for om in test
print(om["intf"])
out:
0/3
0/5
0/7
或者类似这样的东西。
希望你明白我想做什么。
请您参考如下方法:
您有一个嵌入在 JSON 字符串中的字典列表。
使用此代码提取您的数据:
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
