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

本文介绍了Python的json库中loads和load方法用于将JSON字符串和文件转换为Python对象,而dumps和dump则用于将Python对象转化为JSON格式的字符串和文件。示例代码展示了如何操作,并提到了ensure_ascii参数在处理非ASCII字符时的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面

一句话概括

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

一、loads 和 load

1.1 loads解释及代码实例

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

import json

with open('data.json') as f:
	for line in f.readlines():		# type(line) : string
    	data = json.loads(line)

#### 等同于下列代码 ####

import json

data = '{"name": "John Smith", "age": 30}'		# string
parsed_data = json.loads(data)

1.2 load解释及代码实例

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

import json

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

二、dumps 和 dump

2.1 dumps解释及代码实例

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

import json

data = {"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 json

data = {"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 json

data = {"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}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值