辨析读写json文件常用json.loads()、json.load()和json.dumps()、json.dump()区别及ensure_ascii参数

news/2024/10/31 3:20:39/

目录

  • 写在前面
  • 一、loads 和 load
    • 1.1 loads解释及代码实例
    • 1.2 load解释及代码实例
  • 二、dumps 和 dump
    • 2.1 dumps解释及代码实例
    • 2.2 dump解释及代码实例
    • 2.3 ensure_ascii参数(Ture or False)

写在前面

一句话概括

json.loads	接受字符串
json.load	接受文件对象
json.dumps	输出为字符串
json.dump	输出到文件

一、loads 和 load

1.1 loads解释及代码实例

json.loads用于从字符串中读取JSON数据。它需要一个包含JSON数据的字符串作为参数,并将该字符串解析为Python对象。

import jsonwith open('data.json') as f:for line in f.readlines():		# type(line) : stringdata = json.loads(line)#### 等同于下列代码 ####import jsondata = '{"name": "John Smith", "age": 30}'		# string
parsed_data = json.loads(data)

1.2 load解释及代码实例

json.load用于从文件中读取JSON数据。它需要一个已打开并可读的文件对象作为参数,并将该文件对象中的JSON内容解析为Python对象。

import jsonwith open('data.json') as f:data = json.load(f)

二、dumps 和 dump

2.1 dumps解释及代码实例

json.dumps用于将Python对象转换为JSON格式,并将其作为字符串返回。它只需要一个参数:要转换为JSON格式的Python对象。

import jsondata = {"name": "John Smith", "age": 30}	# type(data) : dict
json_string = json.dumps(data)				# 输出到字符串: type(json_string) : string

2.2 dump解释及代码实例

json.dump用于将Python对象转换为JSON格式,并将其写入文件。它需要两个参数:第一个参数是要转换为JSON格式的Python对象,第二个参数是一个已打开并可写的文件对象,用于将JSON数据写入文件。

import jsondata = {"name": "John Smith", "age": 30}	# type(data) : dict
with open("data.json", "w") as f:json.dump(data, f)						# 输出到文件里

2.3 ensure_ascii参数(Ture or False)

ensure_ascii是dump和dumps函数中都包含的参数之一,主要作用:

用于控制是否将非 ASCII 字符转义为 Unicode 转义序列。

简单来说是否把data里的内容是否保持原样,下面给出样例区别

import jsondata = {"name": "Jérémy", "age": 25}json1_string = json.dumps(data, ensure_ascii=True)		# {"name": "J\u00e9r\u00e9my", "age": 25}json2_string = json.dumps(data, ensure_ascii=False)		# {"name": "Jérémy", "age": 25}

http://www.ppmy.cn/news/78437.html

相关文章

大数运算(加法,减法,乘法,除法)

目录 一.大数加法 1.题目描述 2.问题分析 3.代码实现 二.大数减法 1.题目描述 2.问题分析 3.代码实现 三.大数乘法 1.题目描述 2.问题分析 3.代码实现 四.大数除法 1.题目描述 2.问题分析 3.代码实现 一.大数加法 1.题目描述 以字符串的形式读入两个数字&#…

mapreduce技术

要实现操作hbase数据表首先要了解它的原理: 1,Hbase原理篇 HBASE就是基于Hadoop的一个开源项目,也是对Google的BigTable的一种实现。 BigTable最浅显来看就是一张很大的表,表的属性可以根据需求去动态增加,但是又没有表与表之间…

果汁脱色树脂,制糖行业脱色,医药行业脱色

具有控制孔径的大孔强碱性Ⅰ型阴特种脱色用离子交换树脂 Tulsimer A-722是一款具有便于颜色和有机物去除的控制孔径的,专门开发的大孔强碱性Ⅰ型阴离子交换树脂。 Tulsimer A-722 (氯型)专门应用于糖浆脱色。 Tulsimer A-722由于其本身…

云计算介绍

云计算是一种新的计算模式,是分布式处理、并行处理和网格计算、网络存储、虚拟化、 负载均衡等传统计算机技术和网络技术发展融合的产物。云计算将计算资源分布在由大量 计算机构成的资源池上,而非本地计算机或远程服务器中,用户根据需求通过…

分享18个好用的ChatGPT插件

上周ChatGPT又进化了,支持联网还有70几种第三方插件,不过还是老样子,只服务氪金玩家,免费端可能还得等等。之前只开放了俩插件,网络浏览器和代码解释器,只能说是真的不够用。 ChatGPT:不够&…

java基础知识

文章目录 1. 数据结构2.流3.线程池 多线程3.1线程3.2 线程池 4.锁5.面向对象5.2 封装、继承、多态5.2抽象、接口5.3重写 、 重载5.4final 6.设计模式7.反射8.异常9.常用类9.1 String9.2 Object9.3 数组 10 其他Linux基础cookie / session的区别转发 、 重定向的区别http与https…

外包干了五年,废了...

先说一下自己的情况。大专生,17年通过校招进入湖南某软件公司,干了接近5年的测试点点点,今年年上旬,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了五年的点工…

小技巧notebook

小技巧notebook 1、MybatisPlus 批量保存 从BaseMapper接口方法可知,mybatis plus mapper只有根据id批量删除和查询,没有批量保存(insert 、update),要实现也很简单,需要定义一个Service Service Slf4j …