python - 将 json 文件转换为 dataframe 解析嵌套的 json 数据
问题描述
下面是我的json结构
{"status":"success","data":{"resultType":"matrix","result":[{"metric":{"env":"allahabad","instance":"10.45.69"},"values":[[16080,"79.03999999999844"],[1608,"85.866666666668"]}}
以上所有json都在单行中
我想把它转换成数据框,就像
data__result__metric__env|data__result__metric__instance|data__result__values__001|data__result__values__002
allahabad |10.45.69 |16080 |79.03999999999844
解决方案
正如我在评论中提到的,我并不完全清楚您的预期输出应该是什么样子。我假设您正在寻找 2-value-columns 解决方案。
使用您的 json 数据(在我看来,您的示例中缺少一些右括号\括号)
json_data = {"status":"success","data":{"resultType":"matrix","result":[{"metric":{"env":"allahabad","instance":"10.45.69"},"values":[[16080,"79.03999999999844"]]]}]}}
这个
data = json_data['data']['result'][0]
df_data = {f'data__result__metric__{key}': [value] * len(data['values'])
for key, value in data['metric'].items()}
df_data.update((f'data__result__values__00{i + 1}', values)
for i, values in enumerate(zip(*data['values'])))
df = pd.DataFrame(df_data)
为您提供以下数据框df
:
data__result__metric__env data__result__metric__instance \
0 allahabad 10.45.69
1 allahabad 10.45.69
2 allahabad 10.45.69
...
13 allahabad 10.45.69
data__result__values__001 data__result__values__002
0 16080 79.03999999999844
1 16080 85.866666666668
2 16080 85.866666666668
...
13 16080 82.21000000000095
推荐阅读
- javascript - React-toastify 显示多个吐司
- java - 在溢出的情况下我们如何扩展数据包?
- vue.js - Windows 10 中的 Vuejs npm 安装问题
- android - 如何使用数据绑定动态设置 app:icon?
- python - 如何正确格式化我的 Python 结构?
- mysql - 我什么时候可以说它是最佳优化查询?
- python - 查找图像中圆心的像素
- laravel - Laravel 使用 axios post 发送电子邮件
- image-processing - Azure 自定义愿景:ONNX 提供与门户/API 不同的结果
- ruby-on-rails-6 - 我们如何使用 postgresql 配置 cable.yml(Action Cable)?