如何将JSON数据与字典合并为Pandas DataFrame?
将JSON数据与字典合并为Pandas DataFrame
分几种常见场景给你具体实现:
场景1:JSON是多条记录列表,字典是全局补充字段
如果你的JSON解析后是包含多条数据的列表,字典是要给每条记录都加上的统一字段(比如城市、国家这类信息),直接把字典转为DataFrame的新列即可:
import pandas as pd # 已解析好的JSON数据(列表格式) json_data = [ {"name": "Alice", "age": 25}, {"name": "Bob", "age": 30} ] # 需要添加的全局信息字典 extra_info = {"city": "New York", "country": "USA"} # JSON转DataFrame df = pd.DataFrame(json_data) # 把字典的每个键值对作为新列插入 for key, val in extra_info.items(): df[key] = val print(df)
运行后输出:
name age city country 0 Alice 25 New York USA 1 Bob 30 New York USA
场景2:JSON是单条记录字典,和另一个字典合并成单行DataFrame
如果JSON本身就是单条数据的字典,直接合并两个字典再转DataFrame就行:
import pandas as pd # 单条JSON数据(字典格式) json_data = {"name": "Charlie", "age": 35} # 补充信息字典 extra_info = {"city": "London", "country": "UK"} # 合并两个字典(Python3.5+支持{**a, **b}语法) combined = {**json_data, **extra_info} # 转成DataFrame要套个列表,不然会把键作为列名、值作为行 df = pd.DataFrame([combined]) print(df)
输出结果:
name age city country 0 Charlie 35 London UK
场景3:JSON包含嵌套结构,字典补充嵌套字段
如果JSON里有嵌套的字典,要把补充信息合并到嵌套字段里,先遍历修改原始数据,再用json_normalize展开嵌套结构:
import pandas as pd import json # 原始JSON字符串,先解析成Python对象 json_str = '[{"name": "David", "details": {"height": 180}}, {"name": "Eve", "details": {"height": 165}}]' json_data = json.loads(json_str) # 嵌套字段的补充信息 extra_info = {"details": {"weight": 75}} # 遍历每条记录,合并嵌套字典 for item in json_data: item["details"] = {**item["details"], **extra_info["details"]} # 展开嵌套结构生成DataFrame df = pd.json_normalize(json_data) print(df)
输出结果:
name details.height details.weight 0 David 180 75 1 Eve 165 75
内容的提问来源于stack exchange,提问作者Alexander
相关产品推荐
相关产品推荐

