如何解决使用csv模块和datetime模块解析时间戳 test.csv 代码
我在Python中的datetime
模块上遇到了麻烦。我有一个csv文件中的数据:
user_id,timestamp
563,0:00:21
671,0:00:26
780,0:00:28
这是我的代码:
import csv
from datetime import datetime
path = "/home/haldrik/dev/python/data/dataset.csv"
file = open(path,newline='')
reader = csv.reader(file,delimiter=',')
header = next(reader) # Ignore first row.
data = []
for row in reader:
# row = [user_id,timestamp]
user_id = row[0]
timestamp = datetime.strptime(row[1],'%H:%M:%S').time()
data.append([user_id,timestamp])
该代码抛出此错误:
Traceback (most recent call last):
File "/home/haldrik/dev/python/instances_web_site.py",line 15,in <module>
date = datetime.strptime(row[1],'%H:%M:%S').time()
File "/usr/lib/python3.8/_strptime.py",line 568,in _strptime_datetime
tt,fraction,gmtoff_fraction = _strptime(data_string,format)
File "/usr/lib/python3.8/_strptime.py",line 349,in _strptime
raise ValueError("time data %r does not match format %r" %
ValueError: time data '' does not match format '%H:%M:%S'
我找不到错误在哪里。我可以看到数据格式符合指定的时间格式。
倾倒cvs导入步骤,我可以确保它可以正常工作,请参见以下代码片段(上述代码中未包含):
data_import = [row for row in reader]
print(data_import[0])
它输出以下内容:
['563','0:00:21']
解决方法
- 您在timestamp列中的一个或多个值上遇到了问题,其中行看起来像
440,
,将导致time data '' does not match format '%H:%M:%S'
- 将
date = datetime.strptime(row[1],'%H:%M:%S').time()
包装在try-except
块中。
test.csv
user_id,timestamp
563,0:00:21
671,0:00:26
780,0:00:28
440,
代码
import csv
from datetime import datetime
path = "test.csv"
file = open(path,newline='')
reader = csv.reader(file,delimiter=',')
header = next(reader) # Ignore first row.
data = []
for row in reader:
# row = [user_id,timestamp]
user_id = row[0]
try:
timestamp = datetime.strptime(row[1],'%H:%M:%S').time()
except ValueError as e:
timestamp = row[1]
# continue # use this if you do not want the row added to data,comment it out otherwise
data.append([user_id,timestamp])
print(data)
[out]:
[['563',datetime.time(0,21)],['671',26)],['780',28)],['440','']]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。