![](/img/trans.png)
[英]Getting error "ValueError: time data '' does not match format '%Y-%m-%d %H:%M:%S'"
[英]Error: ValueError: time data 'N/A' does not match format '%Y-%m-%d' - Python
我是DevOps的大三學生,我需要創建一個從電子表格返回一些結果的代碼,因此我更新了從互聯網上找到的代碼。
結果:
#!/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()))))
我的問題是,當我擁有access_key_1_last_rotated的 N / A之類的數據時,它返回錯誤:
ValueError:時間數據“ N / A”與格式“%Y-%m-%d”不匹配
如何自定義代碼以忽略N / A之類的數據?
總的來說,我會搬家
((dt-(datetime.datetime.strptime((user["access_key_1_last_rotated"]).split('T')[0],"%Y-%m-%d").date()))))
退出打印語句,並將其分配給變量。 然后,又快又臟,您可以包裝一個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)
該日期計算中發生了很多事情,因此,如果日期開始以奇怪的格式出現,您可能需要進一步細分
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.