导入json模块后出现builtins.AttributeError: module 'json' has no attribute 'load'错误的排查求助
解决
module 'json' has no attribute 'load'的问题 兄弟,这问题我碰到过好多次了,十有八九是脚本命名冲突搞的鬼!咱们一步步来分析:
最可能的原因:你不小心覆盖了标准库的json模块
Python导入模块时,会优先从当前目录找同名文件。如果你自己的脚本文件名叫json.py,那你写的import json其实导入的是你自己的这个脚本,而不是Python自带的标准库json模块。你自己的脚本里没有load函数,自然就会抛出AttributeError了。
另外,就算你后来改了文件名,当前目录下可能还残留着json.pyc(Python的编译缓存文件),Python还是会优先加载这个缓存文件,导致同样的错误。
解决步骤
- 立刻把你的脚本文件名改掉,比如改成
json_data_reader.py,绝对不能和标准库模块重名。 - 检查当前目录下有没有
json.pyc文件,如果有,直接删除它。 - 重新运行你的代码,应该就能正常调用
json.load()了。
验证方法(可选)
你可以在代码开头加一行:
import json print(json.__file__)
运行后如果输出的路径是你自己脚本的路径,那百分百是命名冲突的问题;如果是Python标准库目录下的json模块路径,那再排查其他少见情况(比如虚拟环境异常、标准库被损坏,但这种情况极少)。
内容的提问来源于stack exchange,提问作者user17269681
相关产品推荐
相关产品推荐

