Python 2.7中simplejson模块报AttributeError: 'module'无'dump'属性求助
解决Python 2.7中simplejson的AttributeError: "module" object has no attribute "dump"问题
看起来你遇到的问题大概率是命名冲突或者simplejson安装异常导致的,咱们一步步来排查解决:
首先排查命名冲突
这是最常见的原因——如果你的脚本所在文件夹里,存在名为json.py或者simplejson.py的文件(包括对应的.pyc编译文件),Python会优先导入你自己写的这个文件,而不是真正的第三方库/标准库模块。
- 打开你的脚本所在目录,检查有没有这类同名文件,如果有,直接删除它们(包括
.pyc文件),然后重新运行脚本试试。
验证simplejson的安装状态
如果命名没问题,那可能是simplejson没有正确安装,或者安装的版本不兼容Python 2.7(毕竟Python 2.7已经停止维护,新版本的simplejson不再支持它)。
先在PowerShell里运行这条命令,查看simplejson的版本和可用方法:
python -c "import simplejson; print('版本:', simplejson.__version__); print('可用方法:', dir(simplejson))"如果输出里看不到
dump,说明你的simplejson确实有问题。重新安装兼容Python 2.7的simplejson版本:
运行这条命令安装最后支持Python 2.7的版本之一:pip install simplejson==3.17.6
规范你的导入和使用方式
为了和原来用标准库json的代码保持一致,建议你这样导入:
import simplejson as json
然后正常使用json.dump()就可以了,比如:
# 示例代码 import simplejson as json sample_data = {"name": "test", "value": 123} with open('output.json', 'w') as f: json.dump(sample_data, f)
额外排查:标准库json是否可用
之前你替换import json为import simplejson解决过问题,可能是你的Python 2.7标准库的json模块被损坏了。可以运行这条命令检查:
python -c "import json; print(dir(json))"
如果输出里有dump,那其实你可以尝试修复标准库,或者继续用上面的simplejson方案。
内容的提问来源于stack exchange,提问作者Roger Almengor
相关产品推荐
相关产品推荐

