Python错误:AttributeError: module ‘json’ has no attribute ‘loads’解决办法

Python错误:AttributeError: module ‘json’ has no attribute ‘loads’解决办法今天在学习 python 中 json 模块的时候遇到了点让我怀疑人生的问题 像往常一样 我在电脑 d 盘根目录创建了一个 json py 的 python 文件 打算在这里练习一下 json 中的两个函数 loads 和 dumps 但是当我运行了如下代码的时候 它竟然提示我 AttributeErr module json hasnoattribu loads 翻译成汉语的意思是 属性

今天在学习python中json模块的时候遇到了点让我怀疑人生的问题。像往常一样,我在电脑d盘根目录创建了一个:json.py的python文件,打算在这里练习一下json中的两个函数:loads()和dumps()。

但是当我运行了如下代码的时候,它竟然提示我:AttributeError: module ‘json’ has no attribute ‘loads’,翻译成汉语的意思是:属性错误:json模块中没有loads属性(函数),当时看到这个错误时我的第一反应就是:what is the fuck!老子就是要练习这个loads函数的,你告诉我json模块没有这个函数?

import json #json文本字符串 j ='''aa:''[{ "password" : "", "method" : "AES-256-CFB", "protocol" : "auth_sha1_v4", }]'' ''' js = json.loads(j) print(js) #json文本字符串 j ='''aa:''[{ "password" : "", "method" : "AES-256-CFB", "protocol" : "auth_sha1_v4", }]'' ''' js = json.loads(j) print(js)
D:\>python json.py Traceback (most recent call last): File "json.py", line 1, in 
  
    import json File "D:\json.py", line 21, in 
   
     js = json.loads(j) AttributeError: module 'json' has no attribute 'loads' 
    
  

 

Goole答案之后,我发现了解决办法,只要将我刚刚创建的json.py的文件改一下名字就可以了,比如说改成json1.py。只要别用json命名就可以了。那为什么会出现这样的错误呢?

 

首先我们要了解python中import引入模块的原理机制。当我们执行一行 from package import module as mymodule 命令时,Python解释器会查找package 这个包的module模块,并将该模块作为 mymodule 引入到当前的工作空间。所以import语句主要是做了二件事:

  1. 查找相应的module
  2. 加载module到local namespace

在import的第一个阶段,主要是完成了查找要引入模块的功能。查找时首先检查 sys.modules (保存了之前import的类库的缓存),如果module没有被找到,则按照下面的搜索路径查找模块:

  1. .py 所在文件的目录
  2. PYTHONPATH 中的目录
  3. python安装目录,UNIX下,默认路径一般为/usr/local/lib/python/
  4. 3.x 中.pth 文件内容

也就是说,当我们import json的时候,它会先搜索json.py所在目录有没有对应的模块,由于我们命名的json.py与json模块文件重名,所以会误以为我们自己创建的json.py即为json模块文件,所以会出现这样的错误。

所以建议各位以后在命名的时候不要起一个与python预留字,模块名等相同的文件名,以免出现不必要的错误。

参考资料:https://github.com/xuelangZF/CS_Offer/blob/master/Python/Package.md

关注我公众号【小众技术】,此公众号专注分享Python、爬虫学习资料和干货,关注后回复【PYTHON】,无套路免费送你一个学习大礼包,包括爬虫视频和电子书~

Python错误:AttributeError: module 'json' has no attribute 'loads'解决办法

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/208729.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午10:54
下一篇 2026年3月19日 上午10:54


相关推荐

  • Web安全渗透详细教程+学习线路+详细笔记【全网最全】

    Web安全渗透详细教程+学习线路+详细笔记【全网最全】欢迎关注微信公众号:hacklex让安全技术不再神秘,让编程更加有趣~~~1.序章 1.1.Web技术演化 1.2.网络攻防技术演化 1.3.网络安全观 2.计算机网络与协议 2.1.网络基础 2.2.UDP协议 2.3.TCP协议 2.4.DHCP协议 2.5.路由算法 2.6.域名系统 2.7.HTTP协议簇 2.8.邮件协议族 2.9.SSL/TLS 2.10.IPsec 2.11.Wi-Fi …

    2026年2月4日
    5
  • 跨域与跨域访问_如何实现跨域访问

    跨域与跨域访问_如何实现跨域访问什么是跨域跨域是指从一个域名的网页去请求另一个域名的资源。比如从www.baidu.com页面去请求www.google.com的资源。跨域的严格一点的定义是:只要协议,域名,端口有任何一个的不同,就被当作是跨域为什么浏览器要限制跨域访问呢?原因就是安全问题:如果一个网页可以随意地访问另外一个网站的资源,那么就有可能在客户完全不知情的情况下出现安全问题。比如下面的操作就有安全问题

    2022年10月1日
    4
  • java面试时怎么做自我介绍_面试时如何做好自我介绍「建议收藏」

    java面试时怎么做自我介绍_面试时如何做好自我介绍「建议收藏」该楼层疑似违规已被系统折叠隐藏此楼查看此楼要想让人力资源考官们欣赏你,你必须明确地告诉考官们你具有应考职位必需的能力与素质,而只有您对此有信心并表现出这种信心后,你才证明了自己。所以我们要充满自信的自我介绍,那面试时如何做自我介绍,敬请阅读下文,或许下文有您想要的答案!.1、自我介绍切忌话多。.比如说,有的面试要求每个人用三句话介绍自己,难道真的只能姓名+专业+学校了?求职者遇到这种情况,当然…

    2022年7月7日
    21
  • linux pstree 命令,Linux pstree命令

    linux pstree 命令,Linux pstree命令Linuxpstree命令Linuxpstree命令将所有行程以树状图显示,树状图将会以pid(如果有指定)或是以init这个基本行程为根(root),如果有指定使用者id,则树状图会只显示该使用者所拥有的行程。使用权限:所有使用者。语法pstree[-a][-c][-h|-Hpid][-l][-n][-p][-u][-G|-U][pid|user]或pstre…

    2025年5月23日
    6
  • tinyint int区别_php intval函数

    tinyint int区别_php intval函数stock_numbertinyint(1)  如果stock_number此时的值是127,当库存+1的时候,就会超过int的最大范围(error:Datatruncation:Outofrangevalueforcolumn’stock_total’atrow1)类型      最小值      最大值      占用字节tinyi…

    2026年2月7日
    3
  • QoS概述

    QoS概述QoS 简介服务质量 QoS QualityofSer 用于评估服务方满足客户服务需求的能力 通过配置 QoS 对企业的网络流量进行调控 避免并管理网络拥塞 减少报文的丢失率 同时也可以为企业用户提供专用带宽或者为不同的业务 语音 视频 数据等 提供差分服务 影响网络质量的因素 网络带宽 网络带宽是指在单位时间 一般指的是 1 秒钟 内能传输的数据量 网络时延

    2026年3月18日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号