使用datetime时输出<generator object ...>的技术问题咨询
问题原因及解决办法
你看到的<generator object at 0x7f1463aeec80>是因为你用了生成器表达式(圆括号包裹的推导式),生成器不会直接生成完整的结果列表,而是创建了一个可迭代的生成器对象,直接打印它就会输出这个标识。
另外你那段while循环完全多余,既没用到循环里的i,还可能因i未初始化触发报错,直接删掉即可。
修正方案
核心问题补充
你的正则匹配出的日期格式是"January 12"(月份和日期间是空格),但strptime里写的是"%B-%d"(横杠分隔),这会导致后续解析报错,必须先把格式串改成"%B %d"。
具体修复代码
方法1:用列表推导式直接生成结果列表
把生成器的圆括号换成方括号,直接得到解析后的日期列表:
# 替换原Date_List定义 Date_List = [datetime.datetime.strptime(date_str, "%B %d") for date_str in dates_with_monthname] print(Date_List)
方法2:保留生成器,打印前转成列表
如果处理超大量数据想节省内存,可保留生成器,打印时用list()转换:
Date_List = (datetime.datetime.strptime(date_str, "%B %d") for date_str in dates_with_monthname) print(list(Date_List))
内容的提问来源于stack exchange,提问作者Thatguy4
相关产品推荐
相关产品推荐

