data = json.load(open("C:/Users/<username>/Downloads/one-day-run-record.json","rb"))
df = pd.json_normalize(data)[["summaries", "tags.com.nike.weather", "tags.com.nike.name", "start_epoch_ms", "end_epoch_ms", "metrics"]]
df
我的主要目标是提取metrics
列中的值。要了解该列的结构,您可以使用下面的行
df.metrics[0]
在下面的代码中,您可以看到按类型分隔的指标。values
我想要为类型存储的所有值steps
,speed
并且pace
prov = pd.json_normalize(df.metrics[0])
prov
例如:在类型中steps
你有这个(你可以签入df.metrics[0]
):
{'type': 'steps',
'unit': 'STEP',
'source': 'com.nike.running.android.fullpower',
'appId': 'com.nike.sport.running.droid',
'values': [{'start_epoch_ms': 1605042906780,
'end_epoch_ms': 1605042907751,
'value': 13},
{'start_epoch_ms': 1605042907780,
'end_epoch_ms': 1605042911754,
'value': 11},
{'start_epoch_ms': 1605042911772,
'end_epoch_ms': 1605042915741,
'value': 6},
{'start_epoch_ms': 1605042915741,
'end_epoch_ms': 1605042918713,
'value': 13},
{'start_epoch_ms': 1605042918713,
'end_epoch_ms': 1605042920746,
'value': 5},
...}]}
我想要一行包含 values [13, 11, 6, 13, 5, ...]
,这些值中的每一个都在不同的数据框列中。
做起来是不是太难了?我怎么能那样做?我尝试了多种方法,但我对.json
文件完全陌生