Python中的Strptime错误

1 投票
2 回答
9392 浏览
提问于 2025-04-17 12:26

我一直在为以下错误感到头疼:

time
Traceback (most recent call last):
  File "csvtest.py", line 37, in <module>
    date = time.strptime(datestring, "%Y-%m-%d %H:%M:%S")
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_strptime.py", line 454, in _strptime_time
    return _strptime(data_string, format)[0]
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_strptime.py", line 325, in _strptime
    (data_string, format))
ValueError: time data 'time' does not match format '%Y-%m-%d %H:%M:%S'

输入是一行来自文件的数据,格式是这样的——年份故意用的是无用的数据:

3354-03-16 15:30:00
3354-03-16 16:00:00
3354-03-16 16:30:00
3354-03-16 16:30:00

我使用的代码如下:


import sys
import csv
from datetime import datetime
import time

filename = open('data.csv', 'rb')


spam = csv.reader(filename, delimiter=',')
for row in spam:

    datestring = row[4] 
    print datestring
    date = time.strptime(datestring, "%Y-%m-%d %H:%M:%S")
filename.close()

2 个回答

1

从错误信息中你可以看出问题所在:

ValueError: time data 'time' does not match format '%Y-%m-%d %H:%M:%S'

你传入了一个字符串 'time',这可能是csv文件的表头。你只需要跳过这一行就可以了。

6

这个格式或者日期字符串没有问题。

我敢打赌你的文件里有一行标题,代码在处理的时候卡住了。

撰写回答