当前位置: 首页 > 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

相关文章:

  • BetterZip — 满足你工作中的解压缩需求
  • java.lang.NoClassDefFoundError: org/dom4j/io/SAXReader
  • jmeter基础入门练习题
  • 【银河麒麟V10服务器OS-系统根分区扩容】指导教程手册
  • 整数乘除法练习题
  • 为何懂行的人都在选海信Mini LED?
  • 【高校科研前沿】南大王栋、吴吉春教授团队在深度学习助力水库生态调度和优化管理方面取得新进展,成果以博士生邱如健为一作发表于水环境领域国际权威期刊
  • 未来已来, AI将作为超级工具?
  • 利用“记忆化搜索“解斐波那契数
  • Leecode---347:输出前k个高频元素(使用unordered_map)
  • [自动驾驶技术]-6 Tesla自动驾驶方案之硬件(AI Day 2021)
  • 计算机组成原理 第四章 存储器 Part 4 高速缓存存储器
  • 红队内网攻防渗透:内网渗透之windows内网权限提升技术:工具篇
  • React-生成随机数和日期格式化
  • nodemcu32s 和 mini D1 组局域网并用 webSocket 通信
  • 【391天】每日项目总结系列128(2018.03.03)
  • 【知识碎片】第三方登录弹窗效果
  • Angular4 模板式表单用法以及验证
  • exports和module.exports
  • Hibernate【inverse和cascade属性】知识要点
  • java2019面试题北京
  • JS+CSS实现数字滚动
  • Koa2 之文件上传下载
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • Material Design
  • nginx 负载服务器优化
  • Node项目之评分系统(二)- 数据库设计
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • swift基础之_对象 实例方法 对象方法。
  • 回顾2016
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 如何使用 JavaScript 解析 URL
  • 一天一个设计模式之JS实现——适配器模式
  • 走向全栈之MongoDB的使用
  • 湖北分布式智能数据采集方法有哪些?
  • ​ubuntu下安装kvm虚拟机
  • # linux从入门到精通(三)
  • #100天计划# 2013年9月29日
  • #define 用法
  • #pragam once 和 #ifndef 预编译头
  • (1)无线电失控保护(二)
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (el-Date-Picker)操作(不使用 ts):Element-plus 中 DatePicker 组件的使用及输出想要日期格式需求的解决过程
  • (待修改)PyG安装步骤
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (七)Java对象在Hibernate持久化层的状态
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .NET 常见的偏门问题
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .Net6 Api Swagger配置
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc