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

JSON转CSV时为多值及复杂多值属性设置不同分隔符的实现方法

实现JSON自定义格式转CSV的解决方案

你需要在导出CSV前,先对两个特殊字段phone和parsed_address做格式预处理,再用pandas默认的逗号分隔导出即可,完整实现代码如下:

import pandas as pd

# 读取JSON文件
df = pd.read_json("input.json")

# 处理phone字段:提取所有手机号用|拼接
df["phone"] = df["phone"].apply(lambda x: "|".join([item["phone"] for item in x]))

# 处理parsed_address字段:单条地址内部字段用;拼接,多条地址用|拼接
# 按预期输出的字段顺序:address_line_1、city、state、postal_code、country
def process_address(addrs):
    addr_list = []
    for addr in addrs:
        addr_str = ";".join([
            addr["address_line_1"],
            addr["city"],
            addr["state"],
            addr["postal_code"],
            addr["country"]
        ])
        addr_list.append(addr_str)
    return "|".join(addr_list)

df["parsed_address"] = df["parsed_address"].apply(process_address)

# 导出为CSV,全局用逗号分隔
df.to_csv("output.csv", sep=",", index=False, encoding="utf-8")

补充说明

  • 代码运行后输出的CSV内容完全匹配需求,你提供的预期输出里first_name值写的samon属于笔误,实际会保留JSON里的原始值saman
  • 如果后续需要调整地址拼接的字段顺序或者增减字段,直接修改process_address函数里的字段列表即可
  • 如果字段可能存在空值,可在拼接时添加判空逻辑避免报错,比如把addr["address_line_1"]改成addr.get("address_line_1", "")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 19:12:01