当前位置: 首页 > news >正文

失之毫厘差之千里之load和loads

起源

最近在读pandas库的一些文档的时候,顺便也会将文档上的一些demo在编辑器中进行运行测试,其中在读到pandas处理Json数据这一节的时候,我还是像往常一样,将文档提供的demo写一遍,结果在运行的时候,直接报异常了,我们来看看我的代码和报错信息吧!

image.png

翻译了一下,大概就是“str”对象没有属性“read”

咿?我就纳闷儿了,怎么可能呢?这么简单的几句代码就执行报异常了。然后赶紧就赶紧返回看文档提供的demo,进行对比,看是不会有什么区别。

结果看完以后,真的想打自己两下,人家调用的是json.loads() 而我调用成了json.load() 。就是这么一点儿点儿区别,修改完成后我们在看看运行结果

image.png

运行结果没问题,是我们想要的结果,那么我在这里就有一个疑问了,loads()和load() 它们两个到底存在着什么不为人知的区别呢?傻傻分不清楚,下面我们就把它们两个进行剖析,让真相浮出水面。

真相

首先我们得知道loads()和load()这俩哥们是干什么工作的? 它们两个的用处很简单就是加载读取json文件内容,但是到底用谁,这可是有讲究的,不能乱用的,小心给你报异常!!!

其次呀,我们的知道它们的区别有这么几点:

(1) 功能参数

load函数用于从文件中加载json数据,它接受一个对象作为参数,并将json数据解析成python对象,我们可以看看源码截图。

image.png

loads函数也是从文件中加载json数据,它接受一个字符串作为参数,然后返回一个python对象。 同样的,源码截图展示。

image.png

(2) 应用场景

load函数是当我们需要在磁盘上读取文件中的内容时,使用此函数。

loads函数是我们已经有了一个JSON字符串,需要将其解析为Python对象时,应使用此函数。

作者:二闹
链接:https://juejin.cn/post/7373858892038995979

http://www.lryc.cn/news/359183.html

相关文章:

  • element ui在移动端的适配问题
  • 堆排序详细理解
  • RK3588+FPGA+AI高性能边缘计算盒子,应用于视频分析、图像视觉等
  • 07-操作元素(键盘和鼠标事件)
  • 3389,为了保障3389端口的安全,我们可以采取的措施
  • Java集合【超详细】2 -- Map、可变参数、Collections类
  • 最佳 Mac 数据恢复:恢复 Mac 上已删除的文件
  • 芋道系统,springboot+vue3+mysql实现地址的存储与显示
  • 【C++】C++11新特性:列表初始化、声明、新容器、右值引用、万能引用和完美转发
  • 【IB Protocal Serial--WQE】
  • C++ 混合运算的类型转换
  • 线性时间选择
  • 【对算法期中卷子的解析和反思】
  • sudo apt update sudo: apt: command not found
  • ios:文本框默认的copy、past改成中文复制粘贴
  • Qt moc系统的黑魔法?
  • MyBatis开发中常用总结
  • Git基本使用教程(学习记录)
  • 【Linux-RTC】
  • 机器学习目录
  • React开发环境配置详细讲解-04
  • Go 如何通过 Kafka 客户端库 生产与消费消息
  • 【设计模式深度剖析】【B】【结构型】【对比】| 主要区别包装的不同
  • 信息学奥赛初赛天天练-17-阅读理解-浮点数精准输出与海伦公式的巧妙应用
  • mysql - 为什么MySQL不建议使用NULL作为列默认值?
  • 数据分析案例-在线食品订单数据可视化分析与建模分类
  • 构建LangChain应用程序的示例代码:2、使用LangChain库实现的AutoGPT示例:查找马拉松获胜成绩
  • 代码随想录算法训练营第三十四 |● 1005.K次取反后最大化的数组和 ● 134. 加油站 ● 135. 分发糖果
  • GB-T 43206-2023 信息安全技术 信息系统密码应用测评要求
  • 线程进阶-1 线程池