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

ops/2024/9/23 11:21:22/

起源

最近在读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.ppmy.cn/ops/45819.html

相关文章

专科生听劝 这种情况你就不要专转本了

罗翔老师说过,读书学习主要作用是提高人的下限 我们能掌握的只有学习,以确保学历不会太差再去等机遇让自己活得更好 大部分情况来说,专科生努力去专转本挺好的提升自己准没错,我当年也是一心这样想的,但今天不得不说点…

在AndroidStudio创建虚拟手机DUB-AI20

1.DUB-AI20介绍 DUB-AL20是华为畅享9全网通机型。 华为畅享9采用基于Android 8.1定制的EMUI 8.2系统,最大的亮点是配置了1300万AI双摄、4000mAh大电池以及AI人脸识别功能,支持熄屏快拍、笑脸抓拍、声控拍照、手势拍照等特色的拍照功能,支持移…

编译安装gcc-11及可能遇到的bug

编译安装脚本 GCC_VERSION11.1.0 PACKAGE_DIR/path/to/gcc/source/code GCC_DIR$PACKAGE_DIR/gcc-$GCC_VERSION GCC_INSTALL_DIR/path/to/install/gccmkdir -p $GCC_INSTALL_DIR cd $GCC_INSTALL_DIR rm -rf * cd $PACKAGE_DIR rm -rf gcc-$GCC_VERSION if [ ! -f "gcc-$…

Python实现SMA黏菌优化算法优化随机森林回归模型(RandomForestRegressor算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 黏菌优化算法(Slime mould algorithm,SMA)由Li等于2020年提出&…

C++ 封装线程池(结合QT支持信号机制)

纯C风格线程池 纯C 风格线程池可参考这篇文章 https://llfc.club/category?catid225RaiVNI8pFDD5L4m807g7ZwmF#!aid/2c2IJUcCUOfzEQQRRdOXYIZuCjP 视频教程 相关线程池和并发编程的视频可以看看这个连接: https://www.bilibili.com/video/BV1Xt421H7M7/?vd_s…

如何免费查到企业的公开信息?

很多小伙伴在查询企业信息的时候,都想要一个综合的平台能够查到企业多维度的信息。 然而企业的信息虽然是公开的,但是信息都分布在不同的网站上,比如企业公示系统,裁判文书网,知识产权网等。 一个企业就要用到多个网…

FreeRtos进阶——软件定时器内部逻辑

在FreeRtos软件定时器,是根据Systick来判断定时是否到达,可以是单次定时器也可以是循环定时器。在创建定时器任务后,在每一次SysTick中断中,会将定时器时钟到的任务写入定时器任务队列。在prvTimerTask任务(守护任务&a…

LeetCode:2965.找出缺失和重复的数字(hash Java)

目录 2965.找出缺失和重复的数字 题目描述: 实现代码与解析: hash 原理思路: 2965.找出缺失和重复的数字 题目描述: 给你一个下标从 0 开始的二维整数矩阵 grid,大小为 n * n ,其中的值在 [1, n2] 范围…