首页 > 解决方案 > 无法格式化 JSON 数据

问题描述

下面是我从 API 调用中获得的示例 JSON 数据。但是当我尝试格式化 JSON 数据时,我做不到。

{
    "jsonrpc": "2.0",
    "result": [
        {
            "status": "3",
            "name": "Windows",
            "triggers": [
                { "triggerid": "11234" },
                { "triggerid": "5465" },
                { "triggerid": "56465" },
                { "triggerid": "56465" },
                { "triggerid": "54364" },
                { "triggerid": "564654" },
                { "triggerid": "564365" },
                { "triggerid": "5434" },
                { "triggerid": "54354" },
                { "triggerid": "5454" },
                { "triggerid": "5645" },
                { "triggerid": "543654" },
                { "triggerid": "546543" }
            ],
            "items": [
                { "name": "connection check" },
                { "name": "Version of apache running" },
                { "name": "Average IOPS " },
                { "name": "Average wrtie speed" },
                { "name": "file in speed" }
            ],
            "templateid": "456434",
            "discoveries": []
        },
        {
            "status": "3",
            "name": "linux_server",
            "triggers": [
                { "triggerid": "11234" },
                { "triggerid": "5465" },
                { "triggerid": "56465" },
                { "triggerid": "56465" },
                { "triggerid": "54364" },
                { "triggerid": "564654" },
                { "triggerid": "564365" },
                { "triggerid": "5434" },
                { "triggerid": "54354" },
                { "triggerid": "5454" },
                { "triggerid": "5645" },
                { "triggerid": "543654" },
                { "triggerid": "123543" }
            ],
            "items": [
                { "name": "connection check" },
                { "name": "Version of docker running" },
                { "name": "Average IOPS " },
                { "name": "Average wrtie speed" },
                { "name": "file in speed" }
            ],
            "templateid": "456434",
            "discoveries": []
        }
    ]
}

我的代码:

output = requests.post(url, data=apache_data, headers=headers)
content_out = json.loads(output.content)
content_out = json.dumps(content_out)

for key in content_out .items():
  print(key)

错误:AttributeError: 'str' object has no attribute 'items'

我想要“ name":"windows"............直到"discoveries": []}作为一本字典。就像那样"name": "linux_server"............直到"discoveries": []}作为另一本字典......任何帮助将不胜感激。

标签: pythonjsonpython-requests

解决方案


你在使用请求吗?您可以通过调用以字典形式访问 JSONoutput.json()

所以我认为使用您的代码,它看起来像这样:

output = requests.post(url, data=apache_data, headers=headers)

for result in output.json()['result']:
    print(result['name'], result['status'], result['templateid'])

这是输出:

Windows 3 456434
linux_server 3 456434

在您的示例中,Windows并且linux_serverresult列表中的两个字典。


推荐阅读