我试图为我在课堂上进行的一个项目读取我的一些FitBit数据。该文件是一个JSON,我以前从未使用过它。我试着用Python来阅读它,但是我总是会被抛出错误。
我能够将数据转换成python字典,但我很难分离出我想要的值。我正在尝试选择'bpm‘之后的所有值,这样我就可以用它们构建一个数组。
我收到的输出是:
========== RESTART: C:\Users\Addy\Physical Activity\JSON Import.py ==========
Traceback (most recent call last):
File "C:\Users\Addy\Physical Activity\JSON Import.py", line 13, in <module>
for i in data['values']:
TypeError: list indices must be integers or slices, not str我理解我为什么要得到它,我也看到了其他的例子,人们用整数值来搜索条目,但我认为这对我没有什么帮助。
以下是我到目前为止所掌握的数据,以及我试图阅读的数据:
import json
# Opening JSON file
f = open('/Users/Addy/Physical Activity/heart_rate-2020-10-06.json',)
# returns JSON object as
# a dictionary
data = json.loads(f.read())
# Iterating through the json
# list
for i in data['values']:
print(i)
f.close()
print(data) [{'dateTime': '10/06/20 20:05:01', 'value': {'bpm': 69, 'confidence': 1}}, {'dateTime': '10/06/20 20:05:11', 'value': {'bpm': 68, 'confidence': 1}}, {'dateTime': '10/06/20 20:05:21', 'value': {'bpm': 70, 'confidence': 1}}, {'dateTime': '10/06/20 20:05:26', 'value': {'bpm': 71, 'confidence': 1}}, {'dateTime': '10/06/20 20:05:31', 'value': {'bpm': 72, 'confidence': 1}}, {'dateTime': '10/06/20 20:05:46', 'value': {'bpm': 73, 'confidence': 1}}, {'dateTime': '10/06/20 20:06:01', 'value': {'bpm': 76, 'confidence': 1}}, {'dateTime': '10/06/20 20:06:06', 'value': {'bpm': 75, 'confidence': 1}}, {'dateTime': '10/06/20 20:06:16', 'value': {'bpm': 72, 'confidence': 1}}] 发布于 2020-10-08 17:43:04
数据是list of dicts,然后键value的值又是dict,您想要键bpm的值。
import json
with open('/Users/Addy/Physical Activity/heart_rate-2020-10-06.json') as f:
data = json.load(f)
bpm = [item['value']['bpm'] for item in data]
print(bpm)发布于 2020-10-08 17:23:17
data是一个列表,而不是字典,所以您可以只使用
for i in data:
print(i)https://stackoverflow.com/questions/64267500
复制相似问题