wie würdet Ihr folgendes Problem umgehen:
Eine SOAP Schnittstelle liefert mir als Ergebniss einer SQL-Abfrage ein datetime Objekt mit dem Wert "0000-00-00 00:00:00".
Als Schnittstelle für SOAP kommt Suds zum Einsatz und genau da liegt mein Problem.
Suds versucht das SQL datetime in ein Python datetime.date zu wandeln.
Nur eben nimmt datetime.date den Wert "0000-00-00" nicht an, da es ein gültiges Datum erwartet (siehe datetime Doku).
/suds/sax/date.py
Code: Alles auswählen
def __parse(self, s):
"""
Parse the string date.
Supported formats:
- YYYY-MM-DD
- YYYY-MM-DD(z|Z)
- YYYY-MM-DD+06:00
- YYYY-MM-DD-06:00
Although, the TZ is ignored because it's meaningless
without the time, right?
@param s: A date string.
@type s: str
@return: A date object.
@rtype: I{date}
"""
try:
year, month, day = s[:10].split('-', 2)
year = int(year)
month = int(month)
day = int(day)
return dt.date(year, month, day)
except:
log.debug(s, exec_info=True)
raise ValueError, 'Invalid format "%s"' % s
Jetzt ist eben die Frage ob ich das Datum mit einem fest gelegten Alternative-Wert überschreibe oder ob es eine andere Möglichkeit gibt eine gültiges datetime.date Objekt mit dem Wert "0000-00-00" zu erhalten.
Für Hinweise und Denkanstöße bin ich wie immer Dankbar!
Gruß
Damaskus