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

Python如何将含键和列表值的嵌套列表逐列写入CSV文件

问题原因

当前每个待写入的行元素由「字符串+列表」两个部分组成,csv.writer的writerow方法会把传入的可迭代对象的每个元素作为单独一列处理,因此原写法会把第二个列表整体作为单列输出,产生带引号的列表字符串。
你之前拼接字符串后输出异常的原因是:字符串本身属于可迭代对象,传入writerow时会被逐字符拆分作为独立字段,因此会出现单个字符拆分的问题。

解决方法

只需将每个行元素展开为一维序列(每个元素对应CSV的一列)即可,推荐两种写法:

  1. 解包语法(Python 3.0+ 支持)
import csv

# 注意不要用list作为变量名,list是Python内置关键字,会覆盖原有功能
data = [('ac', [1, 1]), ('alex.miller', [1, 2]), ('blossom', [2, 3])]

with open(r"user_statistics.csv", "a+", newline='', encoding='utf-8') as csvfile_user:
    writer = csv.writer(csvfile_user)
    for row in data:
        # 把字符串和列表内的元素拆分后合并为单行多列
        writer.writerow( (row[0], *row[1]) )
  1. 列表拼接(兼容所有Python版本)
    把上述代码中writerow的部分替换为列表拼接即可,效果完全一致:
writer.writerow( [row[0]] + row[1] )

附加说明

  • 打开CSV时添加newline=''参数是Python官方推荐的写法,可以避免Windows系统下输出的CSV出现多余空行
  • 添加encoding='utf-8'参数可以避免中文、特殊字符出现乱码问题

内容的提问来源于stack exchange,提问作者Martin P.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 01:06:05