如何通过pandas to_json直接生成带指定根对象的合规JSON文件
直接用Pandas生成指定结构的JSON文件
你可以通过以下步骤实现需求,无需事后编辑JSON文件:
- 读取CSV数据:保留原有的读取逻辑
- 生成数据数组:用
df.to_dict('records')将DataFrame转换为对象数组,这是你需要的核心数组结构 - 构造目标JSON结构:把生成的数组嵌套到
vendorslist根键下 - 写入JSON文件:用
json模块将构造好的完整结构写入文件,保证格式符合要求
修改后的完整代码
import pandas as pd import json # 读取CSV,保留原参数 df = pd.read_csv('test_input.csv', na_filter=False, skiprows=0) # 生成对象数组,再套入根键结构 output_data = {"vendorslist": df.to_dict('records')} # 写入JSON文件,指定缩进格式 with open("test_out.json", 'w') as f: json.dump(output_data, f, indent=2)
示例说明
- 输入CSV内容:
vendor,issuer honda.com,DigiCert toyota.com,GoDaddy - 生成的
test_out.json内容:{ "vendorslist": [ { "vendor": "honda.com", "issuer": "DigiCert" }, { "vendor": "toyota.com", "issuer": "GoDaddy" } ] }
原方法问题说明
原代码用orient='index'时,Pandas会以行号字符串作为键,生成类似{"0": {...}, "1": {...}}的结构,不符合你需要的数组格式。而orient='records'会直接生成每行对应一个对象的数组,再将这个数组放到vendorslist键下,就能一步得到目标结构。
内容的提问来源于stack exchange,提问作者AliasSyed
相关产品推荐
相关产品推荐

