Python如何将包含嵌套列表的多个列表写入无括号引号的CSV文件
实现方案
直接在写入每行前将嵌套列表元素平铺展开即可,核心是对zip返回的每组元素做解包拼接,参考代码如下:
import csv a = [1, 2, 3, 4] b = ["abc", "def", "dec", "erf"] c = [[5, 6, 7], [8, 9, 10], [11, 12, 13.3], [14, 15, 16]] with open('output.csv', 'w', newline='', encoding='utf-8') as f: writer = csv.writer(f) for val_a, val_b, val_c in zip(a, b, c): # 解包嵌套列表,拼接为一维行数据再写入 writer.writerow([val_a, val_b, *val_c])
生成的output.csv内容如下:
1,abc,5,6,7 2,def,8,9,10 3,dec,11,12,13.3 4,erf,14,15,16
原写法问题说明
你之前直接将zip生成的元组传入writerow时,元组中的嵌套列表会被csv模块自动转为字符串格式,因此会出现括号、引号等多余字符。通过*val_c语法解包嵌套列表的所有元素,和前两个值拼接为一维列表后再写入,即可得到符合要求的格式。
内容的提问来源于stack exchange,提问作者JohnJ
相关产品推荐
相关产品推荐

