如何遍历JSON项目和JSON子项

时间:2018-10-11 08:31:20

标签: python arrays json

我有以下JSON输入

{
    "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"
        }]
}

我想遍历所有result,然后输出externalId键值。

我尝试过

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"]

但这也不起作用。正确的方法是什么?

3 个答案:

答案 0 :(得分:1)

for i in json_op["result"]:
    print (i["externalId"]) 

这有效。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

那为什么不列出理解:

print([i["externalId"] for i in json_op["result"]])

或要格式化:

print('\n'.join([i["externalId"] for i in json_op["result"]]))