load、loads、dump、dumps的区别

导读:本篇文章讲解 load、loads、dump、dumps的区别,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

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'}

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/74130.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!