如何使用json_normalize处理嵌套JSON数据并导出为CSV?
解决方法
问题根因
你代码中执行pd.json_normalize(bn)后没有将展开后的结果赋值给变量,最终导出的仍是未做嵌套展开的原始bn数据,因此嵌套对象没有被拆分为独立列。
修正后代码
import json import pandas as pd import urllib URL = "https://dsv.ihsmvals.com/holidays/v1.0/symbol/FX-GBP/startDate/20210101/endDate/20211231" response = urllib.request.urlopen(URL) text = response.read() json_data = json.loads(text) # 直接对events列表做嵌套展开,一步生成规整的DataFrame df = pd.json_normalize(json_data['events']) # 导出CSV时设置index=False避免生成多余的索引列 df.to_csv("output.csv", index=False)
修改说明
- 省去多余的
pd.read_json、列表转换步骤,直接对接口返回的events字段做规范化处理,效率更高 - 将
pd.json_normalize的返回结果赋值给变量,确保嵌套的event、status等子字段被展开为独立列 - 导出CSV时关闭索引输出,符合预期的表格格式
内容的提问来源于stack exchange,提问作者Naina
相关产品推荐
相关产品推荐

