第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 csv 模塊和 datetime 模塊解析時間戳

使用 csv 模塊和 datetime 模塊解析時間戳

泛舟湖上清波郎朗 2023-05-23 16:32:24
我datetime在使用 Python 中的模塊時遇到了一些問題。我有來自 csv 文件的數(shù)據(jù):user_id,timestamp563,0:00:21671,0:00:26780,0:00:28這是我的代碼:import csvfrom datetime import datetimepath = "/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'我找不到錯誤在哪里。我可以看到數(shù)據(jù)格式符合指定的時間格式。倒出 cvs 導(dǎo)入步驟,我可以確保它有效,請參見這段代碼(未包含在上面的代碼中):data_import = [row for row in reader]print(data_import[0])它輸出這個:['563','0:00:21']
查看完整描述

1 回答

?
夢里花落0921

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超6個贊

您對 timestamp 列中的一個或多個值有疑問,其中一行看起來像440,并且會導(dǎo)致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, 0, 21)], ['671', datetime.time(0, 0, 26)], ['780', datetime.time(0, 0, 28)], ['440', '']]



查看完整回答
反對 回復(fù) 2023-05-23
  • 1 回答
  • 0 關(guān)注
  • 187 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號