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

如何在Python中逐行写入CSV文件并实现日期存在性判断

修正CSV写入代码,实现日期存在性标记输出

我来帮你调整代码,解决当前的问题并实现你想要的效果。先说说你现有代码里的几个小问题:

  • 用zip(j, n)是错误的:j是单个日期字符串,zip会把它拆成单个字符,和数字n配对,导致每行只输出一个字符和数字,不是完整的日期列
  • 缺少表头写入逻辑
  • 不需要内层循环,直接构造每行数据即可

下面是修正后的完整代码:

import csv  # 别忘了导入csv模块

dates = ["2024-01-01", "2024-01-02", "2024-01-03"]  # 示例日期列表
dates2 = ["2024-01-02"]  # 示例存在的日期列表

with open('userperday.csv', "w", newline='') as f:  # 添加newline=''避免空行
    writer = csv.writer(f)
    # 先写入表头
    writer.writerow(["日期", "是否存在"])
    # 循环处理每个日期
    for j in dates:
        # 判断日期是否在dates2中,赋值1或0
        n = 1 if j in dates2 else 0
        # 直接写入一行:[日期, 标记值]
        writer.writerow([j, n])

代码说明:

  1. 导入csv模块:这是使用csv写入功能的前提,你的原代码里可能漏了这一步
  2. 添加newline='':避免Windows系统下写入CSV时出现多余的空行
  3. 写入表头:先通过writer.writerow写入表头行,对应你需要的两列标题
  4. 简化标记赋值:用三元表达式一行完成判断,比先设n=0再修改更简洁
  5. 直接构造行数据:把日期和标记值放在一个列表里,用writer.writerow直接写入,不需要多余的zip和循环

这样运行后,userperday.csv的内容就会是:

日期,是否存在
2024-01-01,0
2024-01-02,1
2024-01-03,0

完全符合你想要的“日期列+存在标记列”的需求~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:45:40