[英]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.