Python 如何循环浏览JSON项和JSON子项
我有以下JSON输入Python 如何循环浏览JSON项和JSON子项,python,arrays,json,Python,Arrays,Json,我有以下JSON输入 { "requestId": "453sdafwa234", "result": [ { "seq": 0, "GUID": "081119bd-63a8-42ca-85de-5b4761234955", "amount": 1234, "externalId": "1234567890", "Status": "OK"
{
"requestId": "453sdafwa234",
"result": [
{
"seq": 0,
"GUID": "081119bd-63a8-42ca-85de-5b4761234955",
"amount": 1234,
"externalId": "1234567890",
"Status": "OK"
},
{
"seq": 1,
"GUID": "011119bd-42ca-63a8-85de-5b47111a8955",
"amount": 5678,
"externalId": "2345678901",
"Status": "OK"
}]
}
我想循环遍历所有结果
,然后输出外部ID
键值
我试过了
json_op = json.loads(json_string)
for op in json_op:
for r in op["result"]:
print r["externalId"]
这是行不通的
我也试过了
json_op = json.loads(json_string)
for op in json_op:
r.get["result"].get["externalId"]
但这也不起作用。正确的方法是什么?好的。首先,必须在代码开始时导入json库 然后,您没有正确地迭代dictionary对象 如果您想读取requestId密钥,只需编写
print(json_op['requestId'])
对于迭代结果:
json_op = json.loads(s)
print(json_op['requestId'])
for res in json_op['result']:
print(res['seq'])
print(res['GUID'])
print(res['amount'])
...
试着告诉我一些事情。我现在无法运行代码。好的。首先,必须在代码开始时导入json库
for i in json_op["result"]:
print (i["externalId"])
然后,您没有正确地迭代dictionary对象
如果您想读取requestId密钥,只需编写
print(json_op['requestId'])
对于迭代结果:
json_op = json.loads(s)
print(json_op['requestId'])
for res in json_op['result']:
print(res['seq'])
print(res['GUID'])
print(res['amount'])
...
试着告诉我一些事情。我现在无法运行代码
for i in json_op["result"]:
print (i["externalId"])
这很有效
import json
s = """{
"requestId": "453sdafwa234",
"result": [
{
"seq": 0,
"GUID": "081119bd-63a8-42ca-85de-5b4761234955",
"amount": 1234,
"externalId": "1234567890",
"Status": "OK"
},
{
"seq": 1,
"GUID": "011119bd-42ca-63a8-85de-5b47111a8955",
"amount": 5678,
"externalId": "2345678901",
"Status": "OK"
}]
}"""
json_op = json.loads(s)
for item in json_op['result']:
print(item['externalId'])
这很有效
import json
s = """{
"requestId": "453sdafwa234",
"result": [
{
"seq": 0,
"GUID": "081119bd-63a8-42ca-85de-5b4761234955",
"amount": 1234,
"externalId": "1234567890",
"Status": "OK"
},
{
"seq": 1,
"GUID": "011119bd-42ca-63a8-85de-5b47111a8955",
"amount": 5678,
"externalId": "2345678901",
"Status": "OK"
}]
}"""
json_op = json.loads(s)
for item in json_op['result']:
print(item['externalId'])
输出:
1234567890
2345678901
输出:
1234567890
2345678901
那么为什么不列出理解:
print([i["externalId"] for i in json_op["result"]])
或要格式化:
print('\n'.join([i["externalId"] for i in json_op["result"]]))
那么为什么不列出理解:
print([i["externalId"] for i in json_op["result"]])
或要格式化:
print('\n'.join([i["externalId"] for i in json_op["result"]]))
您的
json
有重复的键,一旦您将其作为dict
加载到python中,只保留最后一个(result
)。抱歉,我已经更正了它。对于s['result']中的数据:打印(data['externalId')。。s是使用json.loads()
解析的json字符串的JSONONONCE,您拥有的是一个普通的python dict(其中一个键映射到python dict的python列表)。事实上,它是由json字符串构建的,这完全无关,它只是简单的python dict和list,这两种类型都有很好的文档记录。您的json
有重复的键,一旦您将其作为dict
加载到python中,则只保留最后一个(result
)。对不起,我已经更正了它。对于s['result'中的数据:打印(数据['externalId'])。。s是使用json.loads()
解析的json字符串的JSONONONCE,您拥有的是一个普通的python dict(其中一个键映射到python dict的python列表)。事实上,它是从json字符串构建的,这完全无关,它只是简单的python dict和list,这两种类型都有很好的文档记录。