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

如何在Python csv模块处理中将日期列转为整数元组

解决CSV日期列转整数元组的问题

直接修改types列表中对应日期列的转换函数即可,完全保留你原来的代码结构:

import csv
file = open('csvfile.csv')
lines = csv.reader(file)
header = next(lines)  # ['name', 'price', 'date']

# 为各列指定转换类型,日期列用lambda函数实现转整数元组
types = [
    str,
    float,
    lambda x: tuple(map(int, x.split('/')))  # 替换原有的str,完成日期格式转换
]

# 原有字典列表生成逻辑完全不变
alist_of_dicts = [
    {
        name: func(val)
        for name, func, val in zip(header, types, line)
    }
    for line in lines
]

原理说明

原来的types列表中,第三个元素是str,现在替换成的lambda函数会:

  1. 把日期字符串按/分割成字符串列表(比如'2/23/2023'变成['2','23','2023'])
  2. 用map(int, ...)将每个字符串元素转为整数
  3. 最后用tuple()将整数序列打包成元组,得到你需要的(2,23,2023)格式

可选:更健壮的异常处理

如果需要处理格式错误的日期(比如分隔符不是/、内容不是数字),可以把lambda换成具名函数:

def convert_date(x):
    try:
        return tuple(map(int, x.split('/')))
    except ValueError:
        # 这里可以根据需求返回默认值或抛出异常
        return (0, 0, 0)

types = [
    str,
    float,
    convert_date
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 23:24:41