Skip to main content
 首页 » 编程设计

python之转换具有多个字典外观的字符串

2025年05月04日15jpfss

解释

我正在使用 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