考虑这个json格式:
{
"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",
}
我想从每个"主机系统"中解析出"名称"和"硬件.cpuInfo.numCpuThreads",但我无法正确读取密钥,并且似乎无法使用通配符。
这是我测试读取"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']
您的 JSON 数据是否正确复制?如果是这样,则无法解析 json 数据,因为它不是有效的格式。
在联机 JSON 编辑器 (http://www.jsoneditoronline.org/( 中检查 json 格式是否正确。您应该删除"config.dateTimeInfo.timeZone.name": "UTC",
末尾的逗号,并在逗号后添加}
。