Ale*_*lds 33 python import json simplejson attributeerror
我正在运行Python 2.7(x64 Linux)并尝试将其转换dict为JSON对象.
>>> import sys
>>> sys.version_info
sys.version_info(major=2, minor=7, micro=0, releaselevel='final', serial=0)
Run Code Online (Sandbox Code Playgroud)
我试图使用simplejson(json从标准库回退)但我收到以下错误:
>>> try: import simplejson as json
... except ImportError: import json
...
>>> metadata = dict()
>>> metadata['foo'] = 'bar'
>>> print metadata
{'foo': 'bar'}
>>> json.dumps(metadata)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'dumps'
Run Code Online (Sandbox Code Playgroud)
使用json或simplejson使用Python 2.7 时是否有一些明显的缺失?
Pau*_*nna 64
有类似的问题,它是由另一个自定义模块引起的.我命名了另一个脚本
json.py,事实证明它试图将自定义json.py文件作为模块加载.转储方法显然不可用.
将json.py脚本重命名为其他内容(json2.py)可以解决问题.
Ale*_*lds 19
原来我json从旧的Python安装中加载了一个旧库:
>>> import json
>>> print json.__file__
/home/areynolds/opt/lib/python2.5/site-packages/json.pyc
Run Code Online (Sandbox Code Playgroud)
删除旧的东西解决了这个问题.谢谢!
AttributeError: 'module' object has no attribute 'dumps'
Run Code Online (Sandbox Code Playgroud)
您可能创建了一个名为json.py的文件,该文件可从python的文件访问 sys.path。或者,您在python的sys.path中添加了一个目录,其中包含一个名为json.py的文件。
选项1:通过导入json,然后导入具有相同别名的另一个模块来中毒井:
eric@dev /var/www/sandbox/eric $ python
>>> import json
>>> json.dumps([])
'[]'
>>> import sys as json
>>> json.dumps([])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'dumps'
Run Code Online (Sandbox Code Playgroud)
选项2: 中毒在python路径中创建一个名为json.py的文件,以:
创建一个新文件json.py,保存它。将此代码放在那里:
def foo():
print "bar"
Run Code Online (Sandbox Code Playgroud)
打开python终端并导入json:
eric@dev /var/www/sandbox/eric/wsgi $ python
>>> import json
>>> type(json)
<type 'module'>
>>> json.dumps([])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'dumps'
>>> json.foo()
bar
Run Code Online (Sandbox Code Playgroud)
它告诉您您的方法不存在。因此,让python告诉您有关此模块性质的更多信息,您会找到有关谁中毒的线索。
>>> print json
<module 'json' from 'json.py'>
>>> dir(json)
['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'foo']
>>> type(json)
<type 'module'>
Run Code Online (Sandbox Code Playgroud)
您的 Python 路径中可能有另一个名为“json”的脚本,这是您无意中导入的。您可以通过重命名您控制的那个或使用
from __future__ import absolute_import
Run Code Online (Sandbox Code Playgroud)
小智 5
我犯的错误是我在json.py.
收到错误时命名了文件名:
AttributeError: 部分初始化的模块 'json' 没有属性 'dumps'(很可能是由于循环导入)。
我将文件名重命名为json1.py而不是创建新文件。
希望能帮助到你
小智 5
我通过卸载之前添加到项目中的 json_extension 库解决了同样的问题。
pip uninstall json_extensions
Run Code Online (Sandbox Code Playgroud)