python - 转换具有多个 dict 外观的字符串
问题描述
解释
我正在使用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模块,但由于我认为有多个 dict,我没有成功。
我想做什么
我想浏览字典(当前是一个字符串)并得到如下结果:
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
推荐阅读
- reactjs - 在 dev 和 prod 中创建 React App 的代理快递后端
- r - 当字符串包含时改变数据框(真/假)
- c++ - 无法使用 fstream 打开临时文件进行输出
- reactjs - typeError:无法读取未定义的属性“地图”(nextjs)
- c++ - C++ 闭包捕获变量
- javascript - 我该如何修复这个照片库?
- azure - Azure Bot Composer 框架 - 对话循环
- r - 通过将“类型”作为输入传递给 R 中的列来过滤数据框
- swift - 如何在 IOS15 中检查 On-Device 模式转换
- javascript - 如何在不重新加载的情况下单击检查密码(表单)以及是否正确在同一页面上显示隐藏的 div?