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
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.