Подтвердить что ты не робот

Объект '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
4b9b3361

Ответ 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) и заново запустить.