展平 JSON 响应

Posted

技术标签:

【中文标题】展平 JSON 响应【英文标题】:Flatten JSON-response 【发布时间】:2020-10-19 08:20:05 【问题描述】:

我在展平此 JSON 时遇到问题,因为我实际上不需要它的结尾,因此我可能会删除它(在展平 JSON 之前或之后)。我想在 Python 中执行此操作,并尝试使用 json_normalized 和 Panda 导出到 CSV。

有什么特别的,最后三个项目,TotalNumberOfMunicipalities、TotalCitizens、Aggregations,不在我想在 flattern 后导出到 CSV 的部分之外。

JSON:


    "Municipalities": [
        
            "Name": "Stockholm",
            "NumberOfCitizens": 974073,
            "Id": "5203d2be-7cda-4caf-9fb5",
            "Attributes": [],
            "Location": 
                "Lat": 59.33,
                "Lon": 18.06
            ,
            "PoliticalGovernance": 1
        ,
        
            "Name": "Uppsala",
            "NumerOfCitizens": 230767,
            "Id": "d155e5f5-b94a-4d0e-ba80",
            "Attributes": [],
            "Location": 
                "Lat": 59.86,
                "Lon": 17.64
            ,
            "PoliticalGovernance": 3
        
    ],
    "TotalNumberOfMunicipalities": 33,
    "TotalCitizens": 4000000,
    "Aggregations": 

我希望输出如何

【问题讨论】:

【参考方案1】:

使用pd.json_normalize:

df = pd.json_normalize(d, 'Municipalities')
print (df)
        Name  NumberOfCitizens                       Id Attributes  \
0  Stockholm            974073  5203d2be-7cda-4caf-9fb5         []   
1    Uppsala            230767  d155e5f5-b94a-4d0e-ba80         []   

   PoliticalGovernance  Location.Lat  Location.Lon  
0                    1         59.33         18.06  
1                    3         59.86         17.64  

【讨论】:

以上是关于展平 JSON 响应的主要内容,如果未能解决你的问题,请参考以下文章

在 Python 中展平嵌套的 JSON API 字典

对表格多数组的环回响应/将对象的嵌套数组展平为线性数组

处理和响应JSON数据

展平/取消展平嵌套 JSON 对象的最快方法

如何将 NodeJs 响应转换为嵌套的 json 响应

Flutter 使用 http 响应头缓存 JSON 响应