如何使用csv.writer生成兼容Google Sheets数组分隔符的CSV?
生成兼容Google Sheets数组格式的CSV
问题描述
我尝试使用csv.writer库写入包含数组的CSV,执行代码csvwriter.writerow(["1", "2", ["3","4"]])后,文件中该行内容为"1", "2", "[3, 4]"。后续需将该CSV上传至Google Sheets,但CSV中的数组分隔符[]与Google Sheets的数组分隔符{}不兼容,请问是否有方法生成带有正确分隔符的CSV?
解决方案
- 手动转换数组格式后写入:csv.writer会自动把列表转成带
[]的字符串,所以要提前把数组元素处理成Google Sheets支持的{元素1,元素2,...}格式的字符串,再写入CSV。
示例代码:import csv # 原始数据行 original_row = ["1", "2", ["3", "4"], ["5", "6", "7"]] processed_row = [] for item in original_row: if isinstance(item, list): # 将列表转为{元素1,元素2}格式的字符串 formatted_item = "{" + ",".join(item) + "}" processed_row.append(formatted_item) else: processed_row.append(item) # 写入CSV with open("compatible.csv", "w", newline="", encoding="utf-8") as csv_file: writer = csv.writer(csv_file) writer.writerow(processed_row) - 处理特殊元素:如果数组元素包含逗号、引号这类会干扰CSV格式的字符,需要用csv模块的
quotechar参数配合处理,或者手动转义。比如元素是"3,4"时,处理后的字符串应为"{\"3,4\",5}",确保CSV解析时不会拆分元素。
内容的提问来源于stack exchange,提问作者Help Needed 101
相关产品推荐
相关产品推荐

