【问题标题】:how to convert python dictionary into required data frame output? [duplicate]如何将python字典转换为所需的数据框输出? [复制]
【发布时间】:2021-08-30 16:49:06
【问题描述】:

假设我收到了 api 响应

response= {
'id': {'abc':[{'area_code':'mkt','area_name':'market'},{'area_code':'chdi','area_name':'chandani'}],
{'xyz':[{'area_code':'rlr','area_name':'rural'},{'area_code':'rwl_st','area_name':'railway station'}]}
}}

我想把它转换成数据框 as (expected output as)

我的努力:pd.json_normalize(response).apply(pd.Series.explode)

但是没用

【问题讨论】:

  • response 当前不是有效的 Python 字典。
  • 不要两次添加相同的问题。下次解决原来的问题。

标签: python json pandas data-science


【解决方案1】:

您的回复必须如下所示:

response = {
   "id":{
      "abc":[
         {
            "area_code":"mkt",
            "area_name":"market"
         },
         {
            "area_code":"chdi",
            "area_name":"chandani"
         }
      ],
      "xyz":[
         {
            "area_code":"rlr",
            "area_name":"rural"
         },
         {
            "area_code":"rwl_st",
            "area_name":"railway station"
         }
      ]
   }
}

之后,您必须创建另一个结构,因为json_normalize 与字典列表一起使用,并且其中必须包含id

new_response = [{"id": rid, **r} for rid in response["id"] for r in response["id"][rid]]

最后你只需要应用函数:

final_result = pd.json_normalize(new_response)

【讨论】:

    猜你喜欢
    • 2018-09-22
    • 2019-10-19
    • 2020-04-11
    • 2021-08-27
    • 1970-01-01
    • 1970-01-01
    • 2013-02-14
    • 2018-12-24
    • 2021-06-22
    相关资源
    最近更新 更多