我是DevOps的一名大三學生,我需要創建一個從電子表格返回一些結果的代碼,因此我更新了從互聯網上找到的這段代碼。錯誤:ValueError:時間數據'N/A'與格式'%Y-%m-%d'不匹配 - Python
結果:
#!/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()))))
我的問題是,當我有這樣N/A數據A爲access_key_1_last_rotated,它返回一個錯誤:
ValueError異常:時間數據'N/A'與格式不匹配'%Y-%m-%d'
如何自定義代碼以忽略數據,如不適用?
你能不能在'print'行之前用'try/except'轉換成'datetime'? – roganjosh
另外,你是什麼意思「忽略數據」?如果它有一個「N/A」值,那麼根本不應該打印什麼? – roganjosh
謝謝@roganjosh。在我的電子表格中,數據的格式類似於02/02/2016,在這部分'(( - (datetime.datetime.strptime((user [「access_key_1_last_rotated」])。split('T')[0], 「%Y-%m-%d」)。date()))))'我需要找到今天到2016年2月2日之間的差異,但有時我沒有日期02/02/2016,是N/A。 –