简体   繁体   English

错误:ValueError:时间数据“ N / A”与格式“%Y-%m-%d”不匹配-Python

[英]Error: ValueError: time data 'N/A' does not match format '%Y-%m-%d' - Python

I am a junior in DevOps and I need to create a code that returns some results from spreadsheet, therefore I have updated this code that I found from internet. 我是DevOps的大三学生,我需要创建一个从电子表格返回一些结果的代码,因此我更新了从互联网上找到的代码。

The result: 结果:

Result code without error 结果代码无错误

#!/usr/bin/env python
from sys import stdin
import datetime
import json
import base64
from datetime import date, timedelta

dt = date.today()

report = json.loads(stdin.read())
table = base64.b64decode(report["Content"]).splitlines()
head = table[0].split(",")
table = table[1:]

for row in iter(table):
    user = dict(zip(head, row.split(",")))
    print ("\033[1m  USER: \033[0m \t  %s \033[1m  MFA_ACTIVE: \033[0m  %s  \033[1m PASSWORD ENABLED: \033[0m  %s  \033[1m  KEY ROTATED: \033[0m %s \n") % (user["user"], user["mfa_active"], user["password_enabled"], ((dt-(datetime.datetime.strptime((user["access_key_1_last_rotated"]).split('T')[0],"%Y-%m-%d").date()))))

My issue is, when I have a data like N/A for access_key_1_last_rotated , it returns a error: 我的问题是,当我拥有access_key_1_last_rotated的 N / A之类的数据时,它返回错误:

ValueError: time data 'N/A' does not match format '%Y-%m-%d' ValueError:时间数据“ N / A”与格式“%Y-%m-%d”不匹配

How can I customize the code to ignore a data like N/A ? 如何自定义代码以忽略N / A之类的数据?

In general, I'd move 总的来说,我会搬家

((dt-(datetime.datetime.strptime((user["access_key_1_last_rotated"]).split('T')[0],"%Y-%m-%d").date()))))

out of the print statement and assign it to a variable. 退出打印语句,并将其分配给变量。 Then, quick and dirty, you can wrap in a try-except 然后,又快又脏,您可以包装一个try-except

var my_date = "N/A"
try:
    my_date = ((dt-(datetime.datetime.strptime((user["access_key_1_last_rotated"]).split('T')[0],"%Y-%m-%d").date()))))
except ValueError as v:
    # print v somewhere
    # print(v)
    # or just pass
    pass
print ("\033[1m  USER: \033[0m \t  %s \033[1m  MFA_ACTIVE: \033[0m  %s  \033[1m PASSWORD ENABLED: \033[0m  %s  \033[1m  KEY ROTATED: \033[0m %s \n") % (user["user"], user["mfa_active"], user["password_enabled"], my_date)

There's quite a lot going on in that date calculation so you may want to break it down further if dates start appearing in strange formats 该日期计算中发生了很多事情,因此,如果日期开始以奇怪的格式出现,您可能需要进一步细分

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 出现错误“ValueError:时间数据''与格式'%Y-%m-%d %H:%M:%S'不匹配” - Getting error "ValueError: time data '' does not match format '%Y-%m-%d %H:%M:%S'" ValueError: 时间数据“无”与格式“%Y-%m-%d %H:%M:%S”不匹配 - ValueError: time data 'None' does not match format '%Y-%m-%d %H:%M:%S' ValueError: 时间数据 '' 与格式 '%Y-%m-%d %H:%M' 不匹配 - ValueError: time data '' does not match format '%Y-%m-%d %H:%M' ValueError:时间数据“ 140120 1520”与格式“%Y-%m-%d%H:%M:%S”不匹配 - ValueError: time data '140120 1520' does not match format '%Y-%m-%d %H:%M:%S' ValueError: 时间数据与格式 '%Y-%m-%d %H:%M:%S.%f' 不匹配 - ValueError: time data does not match format '%Y-%m-%d %H:%M:%S.%f' ValueError: 时间数据 "(0, '2022-06-14')" 与格式不匹配 "(d, '%Y-%m-%d') - ValueError: time data "(0, '2022-06-14')" does not match format "(d, '%Y-%m-%d') 时间数据与格式 '%y-%m-%d' 不匹配 - time data does not match format '%y-%m-%d' ValueError at / time data '' 与格式 '%Y-%m-%d' 不匹配 - ValueError at / time data '' does not match format '%Y-%m-%d' ValueError:时间数据“2006–01–01”与格式“%Y-%m-%d”不匹配 - ValueError: time data '2006–01–01' does not match format '%Y-%m-%d' Python/Odoo:ValueError:时间数据“%Y-%m-%d”与格式“2020-10-09 00:00:0)”不匹配 - Python/Odoo: ValueError: time data '%Y-%m-%d' does not match format '2020-10-09 00:00:0)'
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM