Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 解析字典中的字典列表以检索特定键';每个字典中的值_Python_Json_Dictionary - Fatal编程技术网

Python 解析字典中的字典列表以检索特定键';每个字典中的值

Python 解析字典中的字典列表以检索特定键';每个字典中的值,python,json,dictionary,Python,Json,Dictionary,我得到了一个JSON响应,并使用JSON.loads()将其转换为python字典。因此,字典如下所示: {u'body': u'[{"id":"1","entity":"zone","status":"PROCESSING","url":null,"createdOn":"2019-10-11T05:49:11Z"},{"id":"2","entity":"floor","status":"FAILED","url":null,"createdOn":"2019-10-11T05:49:15Z

我得到了一个JSON响应,并使用
JSON.loads()
将其转换为python字典。因此,字典如下所示:

{u'body': u'[{"id":"1","entity":"zone","status":"PROCESSING","url":null,"createdOn":"2019-10-11T05:49:11Z"},{"id":"2","entity":"floor","status":"FAILED","url":null,"createdOn":"2019-10-11T05:49:15Z"},{"id":"3","entityType":"apartment","status":"SUCCESS","url":null,"createdOn":"2019-10-11T05:49:18Z"}]',u'isBase64Encoded': False, u'statusCode': 200}
我将其命名为
testStatusList
。我想检索
“body”
中每个字典的
“status”
键的值。我能够通过给出
body=testStatusList['body']
来检索
“body”
。现在,字典看起来像:

[
    {
        "id": "1",
        "entityType": "zone",
        "status": "PROCESSING",
        "url": null,
        "createdOn": "2019-03-07T12:47:10Z"
    },
    {
        "id": "2",
        "entityType": "floor",
        "status": "FAILED",
        "url": null,
        "createdOn": "2019-08-19T16:46:13Z"
    },
    {
        "id": "3",
        "entityType": "apartment",
        "status": "SUCCESS",
        "url": null,
        "createdOn": "2019-08-19T16:46:13Z"
    }
]
我尝试过这个解决方案[

但我一直在获取
AttributeError:“unicode”对象没有属性“items”
。是否有其他方法获取unicode对象的项

因此,我基本上希望检索所有状态,即PROCESSING、FAILED和SUCCESS,以便在某个特定“id”出现故障时设置“if”条件以显示适当的消息。我对我的方法非常不确定,因为我对Python一无所知。任何帮助都将不胜感激!谢谢!

正文仍然是(unicode)顶部blob中的字符串。使用
json。再次在该字符串上加载

body = """[
    {
        "id": "1",
        "entityType": "zone",
        "status": "PROCESSING",
        "url": null,
        "createdOn": "2019-03-07T12:47:10Z"
    },
    {
        "id": "2",
        "entityType": "floor",
        "status": "FAILED",
        "url": null,
        "createdOn": "2019-08-19T16:46:13Z"
    },
    {
        "id": "3",
        "entityType": "apartment",
        "status": "SUCCESS",
        "url": null,
        "createdOn": "2019-08-19T16:46:13Z"
    }
]"""


import json
body = json.loads(body)
status =[]
for b in body:
   for k,v in b.items():
       if k == 'status':
           status.append(v) 
print(status)
结果:

[‘处理’、‘失败’、‘成功’]


好吧,这对我来说很有效!我不知道我得再装一次尸体。谢谢!
body = """[
    {
        "id": "1",
        "entityType": "zone",
        "status": "PROCESSING",
        "url": null,
        "createdOn": "2019-03-07T12:47:10Z"
    },
    {
        "id": "2",
        "entityType": "floor",
        "status": "FAILED",
        "url": null,
        "createdOn": "2019-08-19T16:46:13Z"
    },
    {
        "id": "3",
        "entityType": "apartment",
        "status": "SUCCESS",
        "url": null,
        "createdOn": "2019-08-19T16:46:13Z"
    }
]"""


import json
body = json.loads(body)
status =[]
for b in body:
   for k,v in b.items():
       if k == 'status':
           status.append(v) 
print(status)