如何将带父节点的JSON转换为CSV?转换后能否还原为原JSON?
带
Quote父节点的JSON与CSV互转方案 这类带顶层父节点的JSON对应CSV的呈现规则
你遇到的是最常见的单层包裹型嵌套JSON,CSV里不需要单独为父节点设置冗余列,呈现逻辑非常清晰:
- CSV的列直接对应
Quote父节点下各子记录的字段,CSV每一行代表Quote节点下的一条完整子记录 - 如果
Quote下的子节点存在二级及以上嵌套(比如子对象、数组),用上级字段.下级字段的规则拍平列名即可,不会丢失层级信息
举个最小结构示例:
原始JSON结构:
{ "Quote": [ {"quote_id": 1, "content": "示例引用内容1", "author": "作者A"}, {"quote_id": 2, "content": "示例引用内容2", "author": "作者B"} ] }
对应转换后的CSV内容:
quote_id,content,author 1,示例引用内容1,作者A 2,示例引用内容2,作者B
可直接运行的转换代码
不需要找第三方在线工具,用Python几行代码就能完成转换,兼容所有同结构JSON:
- JSON转CSV
import json import pandas as pd # 替换为你本地JSON文件的实际存储路径 with open("your_file.json", "r", encoding="utf-8") as f: raw_json = json.load(f) # 自动提取Quote父节点下的内容,拍平所有嵌套字段 df = pd.json_normalize(raw_json["Quote"]) # 导出CSV,utf-8-sig编码兼容Excel直接打开不乱码 df.to_csv("quote_result.csv", index=False, encoding="utf-8-sig") - 编辑后CSV回转JSON
只要你编辑CSV时不修改原有列名、不破坏原有列的取值格式,回转后可以100%还原原始的带Quote父节点的结构,回转代码如下:import json import pandas as pd # 替换为你编辑后的CSV文件路径 df = pd.read_csv("edited_quote.csv", encoding="utf-8-sig") # 还原带Quote父节点的原始结构 restore_json = {"Quote": df.to_dict(orient="records")} with open("restored_quote.json", "w", encoding="utf-8") as f: json.dump(restore_json, f, ensure_ascii=False, indent=2)
注意事项
- 如果原始JSON的
Quote下存在数组类嵌套字段,拍平后列名会带序号(比如tags.0、tags.1),编辑时不要修改这类列名,否则回转时会丢失数组结构 - 不要在CSV中使用合并单元格、公式、富文本格式,否则读取时会出现值异常,导致回转结果和原始结构不一致
内容的提问来源于stack exchange,提问作者user18105926
相关产品推荐
相关产品推荐

