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

Python保存JSON解析结果至CSV时逐字符写入的问题排查

解决CSV逐字符写入的问题

问题出在你直接把单个字符串传给了写入方法——不管是csv.writerow()还是pandas的DataFrame构造方法,都会把字符串当成可迭代对象,自然就拆成单个字符写入了。解决思路很简单:先把所有需要保存的数据收集到一个列表里,再统一处理。

方法一:用原生csv模块

import json
import csv

# 假设response已正常获取
data = json.loads(response.text)
info = data['adapterInstancesInfoDto']

# 先把所有name收集到列表
names = []
for item in info:
    val = item['resourceKey']['name']
    names.append(val)
    print(val)

# 写入CSV文件
with open('output.csv', 'w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    # 可选:写入表头
    writer.writerow(['Name'])
    # 每行传一个列表(不要直接传字符串)
    for name in names:
        writer.writerow([name])

也可以用列表推导式简化收集步骤:

names = [item['resourceKey']['name'] for item in info]

方法二:用Pandas

import json
import pandas as pd

data = json.loads(response.text)
info = data['adapterInstancesInfoDto']

# 收集数据并转成DataFrame
names = [item['resourceKey']['name'] for item in info]
df = pd.DataFrame(names, columns=['Name'])

# 保存CSV,index=False去掉自动生成的索引列
df.to_csv('output_pandas.csv', index=False, encoding='utf-8')

关键提醒

不管用哪种方法,绝对不要直接把单个字符串传给写入方法。比如错误写法writer.writerow(val)或者pd.DataFrame(val),都会触发逐字符写入的问题,必须把单个值包装成列表/元组,或者整合成序列后再处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 09:25:27