Объект 'module' не имеет атрибутов 'load' при разборе JSON с использованием python
Я пытаюсь разобрать JSON из Python. Недавно я начал работать с Python, поэтому я последовал примеру учебника stackoverflow, который разбирал JSON с использованием Python, и я придумал код ниже -
#!/usr/bin/python
import json
j = json.loads('{"script":"#!/bin/bash echo Hello World"}')
print j['script']
Но всякий раз, когда я запускаю приведенный выше код, я всегда получаю эту ошибку -
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'
Любые мысли, что я здесь делаю неправильно? Я запускаю cygwin в windows, и оттуда я запускаю свою программу python. Я использую Python 2.7.3
И есть ли лучший и эффективный способ разбора JSON?
Обновление: -
Ниже код не работает, если я удаляю одиночную кавычку, так как я получаю строку JSON от другого метода -
#!/usr/bin/python
import json
jsonStr = {"script":"#!/bin/bash echo Hello World"}
j = json.loads(jsonStr)
shell_script = j['script']
print shell_script
Итак, перед десериализацией, как убедиться, у него есть и одна цитата?
Это ошибка, которую я получаю -
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
Ответы
Ответ 1
File "json.py", line 2, in <module>
import json
Эта строка является бесплатной: вы назвали свой script "json", но вы пытаетесь импортировать встроенный модуль под названием "json", так как ваш script находится в текущем каталоге, он на первом месте в sys.path и так, чтобы импортируемый модуль.
Вам нужно переименовать свой script в нечто другое, предпочтительнее не стандартный модуль python.
Ответ 2
Похоже, у вас есть модуль json.py
, который не является частью стандартной библиотеки. Не уверен, что такое ZookPython. Попробуйте переименовать каталог ZookPython (или просто json.py
) и заново запустить.