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

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

ValueError: 時間數據“無”與格式“%Y-%m-%d %H:%M:%S”不匹配

ValueError: 時間數據“無”與格式“%Y-%m-%d %H:%M:%S”不匹配

呼喚遠方 2021-11-09 16:18:11
['BBBBB', '20190213', 'SUCCESS', 'Job_name1', '2019-02-14 18:11:55', '2019-02-14 18:11:56', '0.02']    ['AAAAA', '20190213', 'SUCCESS', 'job_name2', '2019-02-14 18:11:48', '2019-02-14 18:11:50', '0.03']['AAAA', '20190213', 'WAITING', 'job_name4', 'None', 'None', '0'] 我有一個像上面這樣的數據庫結果列表,記錄 4,5 在 UTC 時區并且是字符串def save_jobs_to_file(jobs_info, filename):        '''save jobs to file        saved to file in re-arranged order: 1 - 0 - 3 - 3 - 4 - 5 - calculated run time        '''        from datetime import datetime        import pytz        tz = pytz.timezone('America/Los_Angeles')        utc = pytz.utc        logging.warning('Saving jobs to file {0}...'.format(filename))        f = open(filename, "w+")        for line in jobs_info:            #print(line)            for i in range(len(line)):                if line[i] == None:                    pass                else:                    #print(datetime.strptime(line[4],'%Y-%m-%d %H:%M:%S'))                    print(type(line[4]),type(line[5]))                    line[4] = datetime.strptime(line[4],'%Y-%m-%d %H:%M:%S')                    line[4] = utc.localize(line[4])                    line[4] = line[4].strftime('%Y-%m-%d %H:%M:%S')                    line[5] = datetime.strptime(line[5],'%Y-%m-%d %H:%M:%S')                    line[5] = utc.localize(line[5])                    line[5] = line[5].strftime('%Y-%m-%d %H:%M:%S')            line = "|".join(line)            f.write(line)            f.write('\n')        logging.warning('Completed saving jobs to file {0}!'.format(filename))我正在嘗試使用 strptime 函數將 4,5 條記錄更改為 datetime 對象,并再次將它們轉換為 pst 時區 dattime 對象并使用 strftime() 再次將它們轉換為字符串。此外,我的列表在 4,5 條記錄中有 None 值,盡管我正在檢查 None 值,但 strptime 仍然拋出以下錯誤。我是 Python 新手,很高興我讓它成為它的一部分,但我無法弄清楚我做錯了什么,盡管我將一個字符串傳遞給 strptime 并檢查無值。
查看完整描述

2 回答

?
絕地無雙

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

   import pytz

   for line in jobs_info:

        #print(line)

        for i in range(len(line)):

            if line[i] == None:

                pass

            else:

                #print(datetime.strptime(line[4],'%Y-%m-%d %H:%M:%S'))

                print(type(line[4]),type(line[5]))

                try:

                    line[4] = datetime.strptime(line[4],'%Y-%m-%d %H:%M:%S')

                    line[4] = pytz.utc.localize(line[4])

                    line[4] = line[4].strftime('%Y-%m-%d %H:%M:%S')

                    line[5] = datetime.strptime(line[5],'%Y-%m-%d %H:%M:%S')

                    line[5] = pytz.utc.localize(line[5])

                    line[5] = line[5].strftime('%Y-%m-%d %H:%M:%S')

                except:

                    pass

        line = "|".join(line)

        print (line)

結果:


BBBBB|20190213|成功|工作名稱1|2019-02-14 18:11:55|2019-02-14 18:11:56|0.02 AAAAA|20190213|成功|工作名稱2|2019-02-14|2019-02-14 2019-02-14 18:11:50|0.03 AAAA|20190213|WAITING|job_name4|None|None|0


查看完整回答
反對 回復 2021-11-09
?
MM們

TA貢獻1886條經驗 獲得超2個贊

嘗試將“pass”替換為“continue”,“pass”只是一個占位符,因此“else”之前的表達式仍會被執行


查看完整回答
反對 回復 2021-11-09
  • 2 回答
  • 0 關注
  • 400 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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