gpt4 book ai didi

python - 解析字典中的字典列表以从每个字典中检索特定键的值

转载 作者:行者123 更新时间:2023-12-01 00:28:00 25 4
gpt4 key购买 nike

我收到了一个 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"
}
]

我尝试了这个解决方案[ Parsing a dictionary to retrieve a key in Python 3.6

testStatusList= json.loads(status_response['Payload'].read())
body = testStatusList['body']
status =[]
for b in body:
for k,v in b.items():
if k == 'status':
status.append(v)

但我不断收到AttributeError: 'unicode' object has no attribute 'items'。是否有不同的方法来获取 unicode 对象的项目?

所以我基本上想检索所有状态,即处理中、失败和成功,以便我可以在该特定“id”出现故障时放置“if”条件来显示适当的消息。我对我的方法非常不确定,因为我对 Python 完全陌生。任何帮助将不胜感激,谢谢!

最佳答案

body 仍然是顶部 blob 中的(unicode)字符串。在该字符串上再次使用 json.loads:

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)

结果:

['PROCESSING', 'FAILED', 'SUCCESS']

关于python - 解析字典中的字典列表以从每个字典中检索特定键的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58399741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com