如何简便将嵌套字典中result的JSON字符串转为Pandas DataFrame?
快速将嵌套JSON结构转为Pandas DataFrame
解决方案
你的需求可以通过两步直接完成,无需手动合并字典:
- 把
result字段中的JSON字符串解析为Python字典 - 直接将解析后的字典传入
pd.DataFrame(),Pandas会自动识别列与行的对应关系
完整代码示例
import json import pandas as pd # 原始数据字典 raw_data = {'result': '{"maid":{"0":"0365206d-e97d-4ab0-aa63-64091e66a1a4","1":"0955bbcc-3a83-4c64-8170-f5deb799a5ba","2":"0570ba29-1ee8-4bc6-a12c-c2b706d805c8"},"category":{"0":"EventHall","1":"SuperMarket","2":"Bank"},"geo_behavior":{"0":null,"1":null,"2":null},"polygonid":{"0":2332,"1":2332,"2":2332},"places":{"0":"Shri Sai Dj","1":"D Mart","2":"Bank of Baroda"},"age":{"0":38.0,"1":18.0,"2":37.0},"gender":{"0":0.0,"1":0.0,"2":0.0},"mobile":{"0":null,"1":null,"2":null},"make":{"0":"oppo","1":"vivo","2":"oneplus"},"deviceprice":{"0":160.0,"1":190.0,"2":392.0},"weight":{"0":2.5684166749,"1":2.0,"2":2.0},"__index_level_0__":{"0":0,"1":1,"2":2}}'} # 解析JSON字符串为字典 parsed_dict = json.loads(raw_data['result']) # 直接生成DataFrame df = pd.DataFrame(parsed_dict) # 可选:移除自动生成的索引列(如果不需要) df = df.drop(columns=['__index_level_0__'])
方法说明
你解析后的字典结构是列名: {行索引: 对应值},这完全匹配Pandas DataFrame的构造规则——传入该结构的字典时,Pandas会自动把外层键作为列名,内层键作为行索引,直接生成规整表格。
之前用pd.json_normalize或pd.DataFrame.from_records未达预期,是因为这两个方法更适合处理行优先的嵌套数组或深层嵌套结构,而你的数据是列优先的键值对,直接用pd.DataFrame()是最直接的方案。
内容的提问来源于stack exchange,提问作者Apricot
相关产品推荐
相关产品推荐

