Ich habe einige lästige Elemente in einer JSON-Datei, die wie etwas gehen:Entfernen Funktion Wrapper mit str.replace() in Python
"DateTime" : Date(-62135596800000),
"ReceivedDateTime" : Date(-62135596800000)
wo dies mit json.Load()
führt zu einem Fehler serializing weil Date() nicht erkannt wird .
Traceback (most recent call last):
File "json_parse.py", line 10, in <module>
data = json.load(data_file)
File "C:\Python27\lib\json\__init__.py", line 291, in load
**kw)
File "C:\Python27\lib\json\__init__.py", line 339, in loads
return _default_decoder.decode(s)
File "C:\Python27\lib\json\decoder.py", line 364, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Python27\lib\json\decoder.py", line 382, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
so die einfachste Sache zu tun ist, bevor serializing die Date()
Wrapper zu entfernen. Ich kann dann später zum richtigen Datumzeitpunkt konvertieren.
Ich kann mit str.replace einfachen Dinge tun, wie zum Beispiel:
data.replace("Date(","")
aber offensichtlich bin ich nicht die hintere Halterung zu entfernen.
Wie kann ich das machen?
Prost.
Das ist nicht eine gültige allgemeine json ist. Versuchen Sie nur das "Date" selbst zu ersetzen – Netwave
Leider habe ich keine Kontrolle, wie der JSON erstellt wird. Ärgerlich aber muss nur machen – brucezepplin
@brucezepplin: es ist nicht json. Melden Sie einen Fehlerbericht, wenn der Upstream angibt, dass es sich um einen JSON handelt. Related: [Konvertieren Sie seltsame Python-Datumsformat in lesbares Datum] (https://stackoverflow.com/q/28482616/4279) – jfs