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

csv writerow()遍历zip列表无数据输出,打印却正常

问题原因与解决方案

核心问题:zip对象是一次性迭代器

zip()返回的是迭代器,这类对象只能被遍历一次。你先通过print循环耗尽了items里的所有元素,之后再用同一个items变量去写CSV时,迭代器已经没有剩余元素了,所以CSV文件是空的。

解决办法

方法1:将zip结果转为列表(可重复遍历)

把zip()的结果转换成列表,列表可以被多次遍历:

# 注意:变量名建议用objects_list代替object,避免和内置关键字冲突
items = list(zip(objects_list, list1, list2, list3))

# 先打印验证
for obj, l1, l2, l3 in items:
    print(f"{obj.name}: {l1}/{l2}/{l3}")

# 再写入CSV,此时列表还有数据
for obj, l1, l2, l3 in items:
    writer.writerow([obj.name, obj.department, obj.section, l1, l2, l3])

方法2:合并遍历操作(一次遍历完成两个动作)

如果不需要保留数据多次使用,直接在同一个循环里完成打印和写入:

items = zip(objects_list, list1, list2, list3)

for obj, l1, l2, l3 in items:
    # 先打印
    print(f"{obj.name}: {l1}/{l2}/{l3}")
    # 再写入CSV
    writer.writerow([obj.name, obj.department, obj.section, l1, l2, l3])

额外提示

你的变量名object是Python的内置名称,建议改成objects_list这类更清晰且不冲突的名字,避免潜在的语法问题。

内容的提问来源于stack exchange,提问作者adi bahadur

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 21:06:30