load、loads、dump、dumps的区别

2022-10-03更新了文章


在这里插入图片描述


json.dumps():将一个python数据类型进行json格式的编码(可以这么理解,json.dumps()函数是将python格式的数据转化为json格式的字符串

json.loads():将json格式数据转换为python格式的数据(可以这么理解,json.loads()函数是将json格式的字符串转化为python格式的数据类型
代码展示:

import json

date={'city':'beijing','city1':'shanghai','city2':'wuhan'}
print(type(date))		#<class 'dict'>

date1=json.dumps(date)
print(date1)			#{"city": "beijing", "city1": "shanghai", "city2": "wuhan"}
print(type(date1))		#<class 'str'>

date2=json.loads(date1)	
print(date2)  			#{'city': 'beijing', 'city1': 'shanghai', 'city2': 'wuhan'}
print(type(date2))		#<class 'dict'>

当字典种含有中文数据
代码展示:

data={'city':'北京','city1':'上海','city2':'武汉'}

data1=json.dumps(data,ensure_ascii=False)
print(data1)			#{"city": "北京", "city1": "上海", "city2": "武汉"}
print(type(data1))		#<class 'str'>

data2=json.loads(data1)
print(data2)			#{'city': '北京', 'city1': '上海', 'city2': '武汉'}
print(type(data2))		#<class 'dict'>

通过上述的实例,我们可以清楚的看到json字符串和字典数据类型的转变,上述为啥使用jsom.dumps使用ensure_ascii=False呢,这是因为json.dumps序列化时对中文默认使用的ascii编码,想输出真正的中文需要指定ensure_ascii=False:

json.dump():用于将字典类型的数据转化为字符串类型,并将数据写入json文件中。
代码展示:

name_emb={'city':'beijing','city1':'shanghai','city2':'wuhan'}
emb_filename=(r'D:\software\1.txt')

#方法1
object=json.dumps(name_emb)
with open(emb_filename,'w') as f:
    f.write(object)

#方法2
res=json.dump(name_emb,open(emb_filename,'w'))

json.load():用于从文件种读取数据
代码展示:

object1=json.load(open(emb_filename))
print('文件中的内容是:',object1)  
#文件中的内容是: {'city': 'beijing', 'city1': 'shanghai', 'city2': 'wuhan'}

在这里插入图片描述

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敲代码敲到头发茂密

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值