下面是我的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
答案 0 :(得分:0)
正如我在评论中提到的,我并不完全清楚您的预期输出应该是什么样子。我假设您正在寻找一个 2 值列的解决方案。
使用您的 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