You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将管道分隔的CSV文件转换为指定结构的JSON格式文件

管道分隔CSV转指定结构JSON的代码调整方案

原有代码问题说明

  • 仅使用单个字典循环调用update()方法,每次迭代都会覆盖前一条记录的内容,最终只保留最后一行数据
  • 未对Pairs字段做拆分解析处理,也没有新增要求的系统日期字段

调整后可直接运行的实现代码

import pandas as pd
import json
from datetime import datetime

# 读取管道分隔符的CSV文件
df = pd.read_csv('filename.csv', sep="|")
result = []
# 统一获取当前系统日期,可根据需求调整日期格式
sys_date = datetime.now().strftime("%Y-%m-%d")

for _, row in df.iterrows():
    # 处理SetrecordID字段,转换为整数列表
    set_record_ids = [int(i) for i in row["SetrecordID"].split(",")]
    # 处理Pairs字段为字典列表
    # 先去除首尾引号,再按","拆分得到每个配对项
    pair_raw = row["Pairs"].strip('"').split('","')
    pairs = []
    for seq, pair_item in enumerate(pair_raw, 1):
        pair_key, match_score = pair_item.split(",")
        pairs.append({
            f"Pair{seq}": pair_key,
            "matchscore": int(match_score)
        })
    # 组装单条记录加入结果列表
    result.append({
        "Date": sys_date,
        "SetrecordID": set_record_ids,
        "SetMatchScore": row["SetMatchScore"],
        "Pairs": pairs
    })

# 输出JSON文件,带格式化缩进
with open("output.json", "w", encoding="utf-8") as f:
    json.dump(result, f, ensure_ascii=False, indent=4)

# 控制台打印验证结果
print(json.dumps(result, indent=4, ensure_ascii=False))

输出说明

运行后生成的output.json完全符合要求的结构:所有记录存放在顶层数组中,每条记录包含系统日期字段,SetrecordID为整数列表,Pairs为带有序号配对键和匹配分的字典列表。

内容的提问来源于stack exchange,提问作者Naveen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 04:45:05