当前位置: 首页 > 面试题库 >

使用Python解析JSON时,“模块”对象没有属性“加载”

西门飞星
2023-03-14
问题内容

我正在尝试从Python解析JSON。我最近开始使用Python,因此我跟随一些stackoverflow教程,了解如何使用Python解析JSON,并提出了以下代码-

#!/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'

有什么想法我在这里做错了吗?我在Windows中运行cygwin,仅从那里运行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

问题答案:
File "json.py", line 2, in <module>
  import json

这行是一个赠品:您已将脚本命名为“ json”,但是您正在尝试导入名为“
json”的内置模块,因为您的脚本位于当前目录中,因此它首先出现在sys.path中,因此导入的模块。

您需要将脚本重命名为其他名称,最好不是标准python模块。



 类似资料:
  • 问题内容: 我只是在做一个OpenCV中特征检测的例子。该示例如下所示。它给我以下错误 模块”对象没有属性“ drawMatches” 我已经检查了OpenCV文档,但不确定为什么会出现此错误。有人知道为什么吗? 错误: 问题答案: 该函数不是Python界面的一部分。 正如您在docs中看到的那样,它仅在当前定义。 摘录自文档: 如果该函数具有Python接口,则会发现以下内容: 编辑 实际上,

  • 问题内容: 我有2个文件a.py和b.py py b.py 在运行时,我收到一条错误消息。 我不知道为什么会弹出此错误,因为当我在尝试打印的虚拟文件中对其进行测试时,它可以工作。但在这种情况下不是。 为什么会出现此错误? 问题答案: 您还有第三个文件random.py。重命名。

  • 问题内容: 我正在尝试使用cPickle在远程环境中加载该功能。但是我得到了错误“’模块’对象没有属性…”。我真正困扰的是,即使无法加载,命名空间也已经包含了该属性。 这是run.py 错误是 问题答案: 我发现此链接很有帮助:http : //stefaanlippens.net/python-pickling-and-dealing-with-attributeerror-module- ob

  • 我正在尝试使用Tensorflow在谷歌云上运行一个培训工作。我试图通过运行以下命令来运行培训。 但是当我运行一个作业时,我得到了以下错误。知道为什么吗?

  • 问题内容: 我只是想像这样将列表转换为一维数组: 但是我收到以下错误: 我尝试重新安装numpy,因为这似乎对其他人有用,但这不能解决问题。 问题答案: 您很可能在工作目录中有一个名为numpy.py的文件,该文件遮盖了实际的numpy模块。重命名该文件并删除其numpy.pyc文件。

  • 问题内容: 我正在尝试使用Python下载网站的HTML源代码,但收到此错误。 我在这里遵循指南:http : //www.boddie.org.uk/python/HTML.html 我正在使用Python 3。 问题答案: 这适用于Python2.x。 对于Python 3,请在docs中查看: