如何在 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 的“日期”和“步数”。
我试图从 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 的“日期”和“步数”。