Python如何将API返回的逗号分隔字符串正确保存为CSV文件
解决方案
问题原因
原拆分逻辑存在两个明显缺陷:
- 使用原始字符串
r'\n'调用split方法,实际是匹配字面量\n字符而非换行符,导致换行拆分失效 - 手动按逗号拆分无法处理被双引号包裹的字段内部的逗号(比如示例中的
"Last, First"),会出现字段错位的问题
实现方案
推荐直接使用专用的CSV解析工具处理,无需手动拆分字符串,可自动兼容所有CSV标准格式规则。
方案1:使用pandas实现(适合后续需要处理数据的场景)
import pandas as pd from io import StringIO # 直接读取CSV格式字符串为DataFrame df = pd.read_csv(StringIO(cs_file)) # 导出为本地CSV文件,index=False表示不导出pandas自带的行号 # encoding用utf-8-sig兼容Windows系统Excel打开不乱码 df.to_csv('output.csv', index=False, encoding='utf-8-sig')
方案2:使用Python内置csv模块实现(无需安装第三方依赖)
import csv from io import StringIO with StringIO(cs_file) as input_stream, open('output.csv', 'w', newline='', encoding='utf-8-sig') as output_file: csv_reader = csv.reader(input_stream) csv_writer = csv.writer(output_file) for row in csv_reader: csv_writer.writerow(row)
内容的提问来源于stack exchange,提问作者Blake Daniel
相关产品推荐
相关产品推荐

