【问题标题】:Convert json file to dataframe parse the nested json data将 json 文件转换为 dataframe 解析嵌套的 json 数据
【发布时间】:2020-12-23 11:25:08
【问题描述】:

下面是我的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

【问题讨论】:

  • 这有点不清楚:您想要 (a) 仅 2 个 data__result__values 列和填充到这些列中的值还是 (b) 28 个值列? if (a):第一行之后的前两列应该填什么?

标签: python json dataframe


【解决方案1】:

正如我在评论中提到的,我并不完全清楚您的预期输出应该是什么样子。我假设您正在寻找 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  

【讨论】:

    猜你喜欢
    • 2022-11-06
    • 2019-06-09
    • 2014-06-27
    • 1970-01-01
    • 2019-05-05
    • 1970-01-01
    • 2020-09-29
    • 1970-01-01
    • 2019-02-13
    相关资源
    最近更新 更多