在Python中解析不规则JSON字段
考虑以下json格式:在Python中解析不规则JSON字段,python,json,Python,Json,考虑以下json格式: { "HostSystem(\"host-527\")": {}, "HostSystem(\"host-487\")": {}, "HostSystem(\"host-482\")": { "hardware.cpuInfo.numCpuThreads": 2, "name": "192.168.1.1", "config.network.consoleVnic": [], "capability.perVmSwapFiles": tru
{
"HostSystem(\"host-527\")": {},
"HostSystem(\"host-487\")": {},
"HostSystem(\"host-482\")": {
"hardware.cpuInfo.numCpuThreads": 2,
"name": "192.168.1.1",
"config.network.consoleVnic": [],
"capability.perVmSwapFiles": true,
"capability.maxRunningVMs": 0,
"config.dateTimeInfo.timeZone.name": "UTC",
}
我想从每个“主机系统”中解析出“name”和“hardware.cpuInfo.numputhreads”,但我无法正确读取密钥,而且似乎无法使用通配符
这是我用来测试读取“HostSystem*”及其失败的起始代码
import json
with open("blob.json") as json_data:
data = json.load(json_data)
print data['HostSystem *']
谢谢你的建议。这是:
import json
with open("blob.json") as json_data:
data = json.load(json_data)
for k in data:
if 'hardware.cpuInfo.numCpuThreads' in data[k]:
print data[k]['hardware.cpuInfo.numCpuThreads']
这是:
import json
with open("blob.json") as json_data:
data = json.load(json_data)
for k in data:
if 'hardware.cpuInfo.numCpuThreads' in data[k]:
print data[k]['hardware.cpuInfo.numCpuThreads']
您的json数据复制是否正确?如果是这样,那么解析json数据就失败了,因为它不是有效的格式
在联机json编辑器()中检查json格式是否正确。您应该删除
“config.dateTimeInfo.timeZone.name”末尾的逗号“:“UTC”,
,并在其后面添加}
。您的json数据复制正确吗?如果是这样,那么解析json数据就失败了,因为它不是有效的格式
在联机json编辑器()中检查json格式是否正确。您应该删除
“config.dateTimeInfo.timeZone.name”末尾的逗号“:“UTC”,
,并在其后面添加}
。我认为这个答案可以通过使用list/dict comprehension输出列表或词典而不是打印来改进。谢谢您的更新。我已经在我的请求中添加了额外的评论,尽管这是正确的。我认为这个答案可以通过使用列表/听写理解来输出列表或词典,而不是打印来改进。谢谢你的更新。我已经在请求中添加了其他注释,尽管这是正确的。此外,我希望显示“HostSystem(\“host-*\”)每次迭代的信息。我希望看到的示例输出是:“HostSystem(\“host-482\”)-hardware.cpuInfo.numputhreads 2,name-192.168.1.1此外,我想显示“主机系统(\“主机-*\”)每次迭代的信息。我想看到的输出示例是:“主机系统(\“主机-482\”)-hardware.cpuInfo.numputhreads 2,name-192.168.1.1