web-dev-qa-db-fra.com

L'objet 'module' n'a pas d'attribut 'charges' lors de l'analyse de JSON en utilisant python

J'essaie d'analyser JSON à partir de Python. J'ai récemment commencé à travailler avec Python donc j'ai suivi un didacticiel stackoverflow sur la façon d'analyser JSON en utilisant Python et j'ai trouvé le code ci-dessous -

#!/usr/bin/python
import json

j = json.loads('{"script":"#!/bin/bash echo Hello World"}')
print j['script']

Mais chaque fois que j'exécute le code ci-dessus, j'obtiens toujours cette erreur -

Traceback (most recent call last):
  File "json.py", line 2, in <module>
    import json
  File "/cygdrive/c/ZookPython/json.py", line 4, in <module>
    j = json.loads('{"script":"#!/bin/bash echo Hello World"}')
AttributeError: 'module' object has no attribute 'loads'

Des pensées sur ce que je fais de mal ici? J'utilise cygwin dans Windows et à partir de là seulement j'exécute mon programme python. J'utilise Python 2.7.3

Et existe-t-il également un moyen meilleur et efficace d'analyser le JSON?

Mise à jour: -

Le code ci-dessous ne fonctionne pas si je supprime le guillemet simple car je reçois une chaîne JSON d'une autre méthode -

#!/usr/bin/python

import json

jsonStr = {"script":"#!/bin/bash echo Hello World"}

j = json.loads(jsonStr)
Shell_script = j['script']
print Shell_script

Donc, avant de désérialiser comment vous assurer, il a également un guillemet simple?

C'est l'erreur que j'obtiens -

Traceback (most recent call last):
  File "jsontest.py", line 7, in <module>
    j = json.loads(jsonStr)
  File "/usr/lib/python2.7/json/__init__.py", line 326, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.7/json/decoder.py", line 366, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
TypeError: expected string or buffer
23
AKIWEB
File "json.py", line 2, in <module>
  import json

Cette ligne est un cadeau: vous avez nommé votre script "json", mais vous essayez d'importer le module intégré appelé "json", puisque votre script est dans le répertoire courant, il vient en premier dans sys.path, et c'est donc le module qui est importé.

Vous devez renommer votre script en quelque chose d'autre, de préférence pas un module standard python.

Il semble que vous ayez un json.py module qui ne fait pas partie de la bibliothèque standard. Je ne sais pas ce qu'est ZookPython. Essayez de renommer le répertoire ZookPython (ou simplement json.py) et relancez.

6