如何在 python 中打印嵌套的 JSON 数据

How to print nested JSON data in python

我试图从 JSON 对象打印列表,但出现错误:

TypeError: string indices must be integers

整个 JSON 对象如下所示:

{'status': 0, 
'body': 
{'activities': [
{'steps': 4144, 'deviceid': None, 'timezone': 'Europe/Copenhagen', 'date': '2020-06-10', 'brand': 18, 'is_tracker': False}, 
{'steps': 4962, 'deviceid': None, 'timezone': 'Europe/Copenhagen', 'date': '2020-06-11', 'brand': 18, 'is_tracker': False}, 
{'steps': 4052, 'deviceid': None, 'timezone': 'Europe/Copenhagen', 'date': '2020-06-12', 'brand': 18, 'is_tracker': True}, 
{'steps': 4375, 'deviceid': None, 'timezone': 'Europe/Copenhagen', 'date': '2020-06-13', 'brand': 18, 'is_tracker': True}, 
{'steps': 5705, 'deviceid': None, 'timezone': 'Europe/Copenhagen', 'date': '2020-06-14', 'brand': 18, 'is_tracker': True}, 
{'steps': 5831, 'deviceid': None, 'timezone': 'Europe/Copenhagen', 'date': '2020-06-15', 'brand': 18, 'is_tracker': True}, 
{'steps': 6460, 'deviceid': None, 'timezone': 'Europe/Copenhagen', 'date': '2020-06-16', 'brand': 18, 'is_tracker': True}, 
{'steps': 1853, 'deviceid': None, 'timezone': 'Europe/Copenhagen', 'date': '2020-06-17', 'brand': 18, 'is_tracker': True}, 
{'steps': 4933, 'deviceid': None, 'timezone': 'Europe/Copenhagen', 'date': '2020-06-18', 'brand': 18, 'is_tracker': True}, 
{'steps': 3247, 'deviceid': None, 'timezone': 'Europe/Copenhagen', 'date': '2020-06-19', 'brand': 18, 'is_tracker': True}], 
'more': False, 'offset': 0}}

我尝试使用以下代码进行打印:

print(json_response2["body"["activities"["steps"][0]["date"]]])

发生错误。

我做错了什么?

print(json_response2["body"]["activities"][0]["steps"])

你应该像这样使用打印语句。这将打印第一个 activity.

的 'steps' 数据

如果要打印 'date' 数据,可以使用此语句:

print(json_response2["body"]["activities"][0]["date"])

您可以像下面这样打印“日期”和“步数”的元素

json_response2 = {'status': 0,
'body':
{'activities': [
{'steps': 4144, 'deviceid': None, 'timezone': 'Europe/Copenhagen', 'date': '2020-06-10', 'brand': 18, 'is_tracker': False},
{'steps': 4962, 'deviceid': None, 'timezone': 'Europe/Copenhagen', 'date': '2020-06-11', 'brand': 18, 'is_tracker': False},
{'steps': 4052, 'deviceid': None, 'timezone': 'Europe/Copenhagen', 'date': '2020-06-12', 'brand': 18, 'is_tracker': True},
{'steps': 4375, 'deviceid': None, 'timezone': 'Europe/Copenhagen', 'date': '2020-06-13', 'brand': 18, 'is_tracker': True},
{'steps': 5705, 'deviceid': None, 'timezone': 'Europe/Copenhagen', 'date': '2020-06-14', 'brand': 18, 'is_tracker': True},
{'steps': 5831, 'deviceid': None, 'timezone': 'Europe/Copenhagen', 'date': '2020-06-15', 'brand': 18, 'is_tracker': True},
{'steps': 6460, 'deviceid': None, 'timezone': 'Europe/Copenhagen', 'date': '2020-06-16', 'brand': 18, 'is_tracker': True},
{'steps': 1853, 'deviceid': None, 'timezone': 'Europe/Copenhagen', 'date': '2020-06-17', 'brand': 18, 'is_tracker': True},
{'steps': 4933, 'deviceid': None, 'timezone': 'Europe/Copenhagen', 'date': '2020-06-18', 'brand': 18, 'is_tracker': True},
{'steps': 3247, 'deviceid': None, 'timezone': 'Europe/Copenhagen', 'date': '2020-06-19', 'brand': 18, 'is_tracker': True}],
'more': False, 'offset': 0}}

for i in json_response2["body"]["activities"]:
    print(i["steps"], i["date"])

这将打印每个 activity 的“日期”和“步数”。