如何通过Python脚本为生成的JSON输出添加额外字段与嵌套结构
修改后的Python脚本及说明
如果你需要保持原脚本的JSON Lines(每行一个JSON对象)输出格式,可使用以下修改后的代码:
import pandas as pd import json df = pd.read_csv('example.csv') # 填充空值为空字符串,解决原输出JSON语法错误问题 df = df.fillna('') # 筛选并重命名目标列 dfnew = df[['request', 'text']].rename(columns={'request':'id','text':'package'}) with open('something.json','w', encoding='utf-8') as f: for _, row in dfnew.iterrows(): # 手动构造要求的嵌套结构 output_item = { "id": row["id"], "data": { "package": row["package"] } } f.write(json.dumps(output_item, ensure_ascii=False) + '\n')
核心修改点
- 新增空值处理:用
fillna('')将所有空值填充为空字符串,解决原输出中package字段后无值导致的JSON语法错误 - 调整结构生成逻辑:不再直接使用pandas默认的平级结构转JSON逻辑,遍历每一行手动构造带
data嵌套的目标结构 - 用标准
json库做序列化,保证输出格式完全符合JSON规范
如果你需要输出的是一个完整的JSON数组而非JSON Lines格式,将写入部分替换为以下代码即可:
output_list = [] for _, row in dfnew.iterrows(): output_list.append({ "id": row["id"], "data": { "package": row["package"] } }) with open('something.json','w', encoding='utf-8') as f: json.dump(output_list, f, ensure_ascii=False, indent=2)
内容的提问来源于stack exchange,提问作者Userbp
相关产品推荐
相关产品推荐

