亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

如何從列表中選擇交替值以轉換為日期時間?

如何從列表中選擇交替值以轉換為日期時間?

一只甜甜圈 2023-09-26 16:58:54
我目前正在學習字符串方法。但是,我遇到了這個問題,出現了 ValueError。我有一個名為列表的列表,result_list其中行的第一個索引是日期/時間戳,第二個索引是評論數。我被要求執行以下操作:從日期中提取小時,這是該行的第一個元素。使用該datetime.strptime()方法解析日期并創建日期時間對象。from datetime import datetime# here is your list of valuesresult_list = ['8/16/2016 9:55', '6.0', '11/22/2015 13:43', '29.0']# set the formatdate_format = '%m/%d/%Y %H:%M'for row in result_list:    time = row[0]    time_dt = datetime.strptime(time, date_format)錯誤---------------------------------------------------------------------------ValueError                                Traceback (most recent call last)<ipython-input-6-ecf5afb3f99e> in <module>      9 for row in result_list:     10     time = row[0]---> 11     time_dt = datetime.strptime(time, date_format)e:\Anaconda3\lib\_strptime.py in _strptime_datetime(cls, data_string, format)    566     """Return a class cls instance based on the input string and the    567     format string."""--> 568     tt, fraction, gmtoff_fraction = _strptime(data_string, format)    569     tzname, gmtoff = tt[-2:]    570     args = tt[:6] + (fraction,)e:\Anaconda3\lib\_strptime.py in _strptime(data_string, format)    347     found = format_regex.match(data_string)    348     if not found:--> 349         raise ValueError("time data %r does not match format %r" %    350                          (data_string, format))    351     if len(data_string) != found.end():ValueError: time data '8' does not match format '%m/%d/%Y %H:%M'我假設我收到錯誤是由于datetime.strptime()構造函數期望值為 08 而不是 8。但是,我不確定從哪里開始解決此問題。
查看完整描述

1 回答

?
慕娘9325324

TA貢獻1783條經驗 獲得超4個贊

result_list是一個平面列表,沒有組,索引 0 處的值的 ,row[0]也是如此。8

將日期值正確轉換為日期時間后,請使用各種方法(例如 ).hour來提取所需的值。

一種選擇是使用列表理解對日期和相關評論計數進行分組。

from datetime import datetime


# here is your list of values

result_list = ['8/16/2016 9:55', '6.0', '11/22/2015 13:43', '29.0']


# set the format

date_format = '%m/%d/%Y %H:%M'


# group each date and count together

rl_updated1 = [result_list[k:k+2] for k in range(0, len(result_list), 2)]


print(rl_updated1)

[out]:

[['8/16/2016 9:55', '6.0'], ['11/22/2015 13:43', '29.0']]


# convert to a datetime format in a list comprehension

rl_updated2 = [[datetime.strptime(v[0], date_format), v[1]] for v in rl_updated1]


print(rl_updated2)

[out]:

[[datetime.datetime(2016, 8, 16, 9, 55), '6.0'],

 [datetime.datetime(2015, 11, 22, 13, 43), '29.0']]


# alternatively, iterate through rl_updated1, before converting to a date format

for group in rl_updated1:

    dt = group[0]

    dt = datetime.striptime(dt, date_format)

保持平面列表,并從索引中選擇日期,其中i % 2 == 0

for i, v in enumerate(result_list):

    if i%2 == 0:

        time_dt = datetime.strptime(v, date_format)

        print(time_dt)

    else:

        comment = v

        print(v)


[out]:

2016-08-16 09:55:00

6.0

2015-11-22 13:43:00

29.0


查看完整回答
反對 回復 2023-09-26
  • 1 回答
  • 0 關注
  • 122 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號