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

引言

朋友们,世间万物是无穷无尽的,也有很多非常相似的人,或者事物发生在我们的周围。

有时候,我们去某个地方旅游或者出差什么的,可能会发现和自己或者朋友长得非常像的人。

在我们学习开发语言的时候会碰到调用函数或属性也非常像的方法,一旦没有注意,选择了错误的那个,那么可能就会制造一些麻烦问题。

这不,在学习python文件加载读取的时候,我就遇到了类似问题,这里做一个记录,同时进行知识点的分析。

起源

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

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

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

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

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

真相

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

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

(1) 功能参数

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

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

(2) 应用场景

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

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

觉醒

经过此役,我有所收获,我们在使用函数的的时候,还得得以封装的源码为准,先得知道函数的用途和区别,这样才能在日常的开发当中游刃有余,才不会犯我类似的错误。

相关推荐
2601_967980115 小时前
深入理解词向量算法及其在Python中的实践
python·word2vec·glove·fasttext·词向量
129Lab5 小时前
电池循环测试数据自动化分析:用Python+AI工具构建一键式寿命评估流水线
python·数据分析·电池测试·数据自动化·寿命评估
treasure1405 小时前
【复古】浅尝Django前后端不分离
前端·css·python·django·bootstrap·html·web
Dmz丶6 小时前
前端转 AI 100 天 Day 44:前端集成实战——用 React 给 Agent 做个正式界面
python
唐墨1236 小时前
linux kernel 比较数据大小的宏定义
linux·算法
jay神6 小时前
基于 YOLOv8 的手势识别系统(Web 版)
前端·人工智能·python·深度学习·yolo·计算机视觉·计算机毕业设计
DeepVisionary6 小时前
阿里云上线旗舰多模态新模型,不公布跑分且限时14天退役
python·自动化
东莞市云毅网络有限公司6 小时前
FAQ 覆盖度打分:TF-IDF 与向量嵌入双路召回的 Python 实现
python·数据清洗·rag·企业知识库·文档解析
爱笑的k116 小时前
nano-vllm 源码剖析:千行 Python 手写离线推理引擎的调度、显存与并行时序
开发语言·python·vllm
拂拉氏7 小时前
【知识讲解-题目讲解】 统计满足K约束的子字符串数量2 (滑动窗口+前缀和+二分查找+分析)
算法·前缀和·二分查找·滑动窗口