Ich bin ein Junior in DevOps und ich muss einen Code erstellen, der einige Ergebnisse aus der Tabelle zurückgibt, Deshalb habe ich diesen Code, den ich im Internet gefunden habe, aktualisiert.Fehler: ValueError: Zeitdaten 'N/A' stimmt nicht mit Format '% Y-% M-% D' - Python
Das Ergebnis:
#!/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()))))
Mein Problem ist, wenn ich ein Daten wie N haben/A für access_key_1_last_rotated, gibt es einen Fehler:
Valueerror : Zeitdaten 'Nicht zutreffend' entspricht nicht dem Format '% Y-% m-% d'
Wie kann ich den Code anpassen, um Daten wie N/A zu ignorieren?
Können Sie 'try/except' nicht einfach vor der' print'-Zeile in 'datetime' konvertieren? – roganjosh
Also, was meinst du mit "Daten ignorieren"? Wie in, wenn es einen "N/A" -Wert hat, sollte nichts gedruckt werden? – roganjosh
Danke @roganjosh. In meiner Tabelle habe ich die Daten im Format wie 02/02/2016 wo in diesem Teil '((dt- (datetime.datetime.strptime ((Benutzer ["access_key_1_last_rotated"]). Split (' T ') [0], "% Y-% m-% d") date())))) 'Ich muss den Unterschied zwischen heute bis 02.02.2016 finden, aber manchmal habe ich nicht das Datum 02/02/2016, und Ja N/A. –