【发布时间】:2021-04-29 18:52:39
【问题描述】:
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]
在下面的代码中,您可以看到按类型分隔的指标。我想要steps、speed 和pace 类型存储在values 中的所有值
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},
...}]}
我想要一行包含值 [13, 11, 6, 13, 5, ...],这些值中的每一个都位于不同的数据框列中。
做起来难吗?我怎么能那样做?我尝试了多种方法,但我对 .json 文件完全陌生
【问题讨论】:
标签: python json pandas json-normalize