pyplot - python plot numpy array




Versuchen, JSON in Python zu analysieren. ValueError: Erwarteter Name der Eigenschaft (3)

Ich versuche, ein JSON-Objekt in ein Python- dict zu analysieren. Ich habe das noch nie zuvor gemacht. Wenn ich diesen speziellen Fehler gegoogelt habe ( Was stimmt nicht mit dem ersten Zeichen? ), Haben andere Beiträge gesagt, dass die geladene Zeichenfolge nicht wirklich eine JSON-Zeichenfolge ist. Ich bin mir aber ziemlich sicher, dass das so ist.

In diesem Fall funktioniert eval() einwandfrei, aber ich frage mich, ob es einen geeigneteren Weg gibt?

Hinweis: Diese Zeichenfolge kommt direkt von Twitter über PTT-Tools.

>>> import json
>>> line = '{u\'follow_request_sent\': False, u\'profile_use_background_image\': True,
         u\'default_profile_image\': False, 
         u\'verified\': False, u\'profile_sidebar_fill_color\': u\'DDEEF6\',
         u\'profile_text_color\': u\'333333\', u\'listed_count\': 0}'
>>> json.loads(line)

Traceback (most recent call last):
     File "<stdin>", line 1, in <module>
     File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 326, in loads
       return _default_decoder.decode(s)
     File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 366, in decode
       obj, end = self.raw_decode(s, idx=_w(s, 0).end())
     File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 382, in raw_decode
       obj, end = self.scan_once(s, idx)
   ValueError: Expecting property name: line 1 column 1 (char 1)

Das ist definitiv nicht JSON - nicht wie oben beschrieben. Es wurde bereits in ein Python-Objekt geparst - JSON hätte false , nicht False und würde keine Strings als u für Unicode anzeigen (alle JSON-Strings sind Unicode). Sind Sie sicher, dass Sie Ihre Json-Zeichenkette nicht bereits irgendwo in der Kette in ein Python-Objekt umgewandelt haben, und es ist offensichtlich falsch, sie in json.loads () zu laden, weil es tatsächlich keine Zeichenkette ist?


Ich habe diesen Fehler erhalten, als ich am Ende einer Liste von Eigenschaften ein hängendes Komma hatte. Wegen des Kommas erwartete es einen anderen Namen, aber es gab keinen.


Stellen Sie sicher, dass Ihre JSON-Datei keine Zeilen hat, die mit // (was fälschlicherweise zu Kommentaren führen sollte!). Ich habe die gleiche ValueError Nachricht und es ist verschwunden, nachdem ich das // aus meiner Datei entfernt habe.







twitter