Python JSON-Modul hat keine Attribute 'Dumps'
Ich verwende Python 2.7 (x64 Linux) und zu versuchen, zu konvertieren, ein dict
um ein JSON-Objekt.
>>> import sys
>>> sys.version_info
sys.version_info(major=2, minor=7, micro=0, releaselevel='final', serial=0)
Ich versuche, mit simplejson
(fallende zurück json
aus der standard-Bibliothek), aber ich bekomme die folgende Fehlermeldung:
>>> try: import simplejson as json
... except ImportError: import json
...
>>> metadata = dict()
>>> metadata['foo'] = 'bar'
>>> print metadata
{'foo': 'bar'}
>>> json.dumps(metadata)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'dumps'
Ist es etwas offensichtlich, dass ich vermisst werde über die Verwendung json
oder simplejson
mit Python 2.7?
Kommentar zu dem Problem
Dies funktionierte gut für mich, auf Linux-64bit, aber ich habe nicht simplejson. Wie etwa
print json.__file__
? versuchen Sie drucken dir(json) zurück, was?
InformationsquelleAutor der Frage Alex Reynolds | 2012-07-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hatte ähnliche Probleme, es wurde verursacht durch ein anderes benutzerdefiniertes Modul. Ich nannte ein anderes script
json.py
und es stellt sich heraus, es versucht zu laden, die benutzerdefinierte json.py Datei als Modul. dumps Methode ist offensichtlich nicht vorhanden.Umbenennung der json.py Skript, um etwas anderes (json2.py) entledigte sich des Problems.
InformationsquelleAutor der Antwort Paulo SantAnna
Stellte sich heraus, ich hatte eine alte
json
Bibliothek geladen, aus einer alten Python-installation:Entfernen, die alten Sachen wurde das Problem behoben. Danke!
InformationsquelleAutor der Antwort Alex Reynolds
Haben Sie eine Datei mit dem Namen
json
odersimplejson
in Ihrem Pfad, ist nicht einer dieser beiden Bibliotheken? Wenn Sie das tun, dann python geladen wird diese Datei anstelle der realen Bibliothek.InformationsquelleAutor der Antwort guidoism
, Wie die Reproduktion dieses python-Fehler:
Haben Sie wahrscheinlich eine Datei erstellt namens json.py das war erreichbar von python
sys.path
. Oder Sie Hinzugefügt ein Verzeichnis Ihrer python-sys.Pfad einer Datei namens json.py.Option 1: Das Gift gut durch den Import json Import ein anderes Modul mit den gleichen alias:
Option 2: Das Gift gut durch erstellen einer Datei namens json.py in den python-Pfad:
Erstellen Sie eine neue Datei json.py speichern Sie es. Fügen Sie diesen code in es:
Öffnen Sie die python-terminal und importieren json:
Es Ihnen Ihre Methode gibt es nicht. So Fragen Sie python, um Ihnen sagen, mehr über die Natur dieses Moduls und finden Sie Hinweise darauf, wer vergiftet.
InformationsquelleAutor der Antwort Eric Leschinski
Haben Sie möglicherweise ein anderes Skript in der Python-Pfad namens "json", die Sie importieren, durch Zufall. Man könnte dies beheben, entweder durch die Umbenennung der unter Ihrer Kontrolle oder unter Verwendung
InformationsquelleAutor der Antwort Chris Lamb
Dieser Fehler ereignete sich nur für mich in einem anderen Kontext, aber dennoch eines von zwei Dingen namens json. Ich hatte den Namen einer "Ansicht" in Django (Python-Funktion, bereitet eine Antwort auf eine HTTP-Anfrage), in diesem Fall eine Ansicht zu handhaben Anfrage für Daten im json-format.
Aber ich hatte Namen in der Ansicht "json". Schlecht bewegen. Ich war verwirrt, wenn die print dir(json) zurückgegeben dumps-freie Antwort meiner Ansicht nach "json" in der Erwägung, dass es zeigte, "dumps" als Attribut in eine ähnliche Ansicht, arbeitete.
Dieser Diskussion behoben das problem für mich.
InformationsquelleAutor der Antwort Mike O'Connor