解析 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": 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",末尾的逗号,并在逗号后添加}

最新更新