您当前的位置: 首页 >  json

IT之一小佬

暂无认证

  • 2浏览

    0关注

    1192博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

json.dumps()、json.dump()、json.loads()和json.dumps()的区别

IT之一小佬 发布时间:2021-01-07 21:12:38 ,浏览量:2

json.dumps()、json.dump()、json.loads()和json.dumps()的区别

        json.dumps()用于将字典形式的数据转化为字符串

        json.loads()用于将字符串形式的数据转化为字典

简单理解:

1、json.dumps()和json.loads()是json格式处理函数(可以这么理解,json是字符串)   (1)json.dumps()函数是将一个Python数据类型列表进行json格式的编码(可以这么理解,json.dumps()函数是将字典转化为字符串)   (2)json.loads()函数是将json格式数据转换为字典(可以这么理解,json.loads()函数是将字符串转化为字典)

2、json.dump()和json.load()主要用来读写json文件函数

示例代码:

json.dumps()函数的使用,将字典转化为字符串

import json

dict1 = {'A': 'a', 'B': 'b'}
dict2 = {"A": "a", "B": "b"}
print(dict1)
print(dict2)  #  字典打印的效果为单引号
# json.dumps()函数的使用,将字典转化为字符串
json_str = json.dumps(dict1)
print(type(dict1))
print(type(json_str))
print(json_str)

运行结果:

{'A': 'a', 'B': 'b'}
{'A': 'a', 'B': 'b'}


{"A": "a", "B": "b"}

注意:

当需要转换的字典中包含中文时,会出现乱码问题。

示例代码:

import json


dict1 = {"A": "a", "姓名": "张三 my name is zhangsan, age is 26"}
print(dict1)
# json.dumps()函数的使用,将字典转化为字符串
json_str = json.dumps(dict1)
print(type(dict1))
print(type(json_str))
print(json_str)

运行效果:

 原因:json.dumps 序列化时默认使用的ascii编码,想输出真正的中文需要指定ensure_ascii=False:更深入分析,是应为dJSON object 不是单纯的unicode实现,而是包含了混合的unicode编码以及已经用utf-8编码之后的字符串。

修改之前的代码:

import json


dict1 = {"A": "a", "姓名": "张三 my name is zhangsan, age is 26"}
print(dict1)
# json.dumps()函数的使用,将字典转化为字符串
json_str = json.dumps(dict1, ensure_ascii=False)
print(type(dict1))
print(type(json_str))
print(json_str)

运行效果:

json.loads函数的使用,将字符串转化为字典

import json

dict1 = {'A': 'a', 'B': 'b'}
# json.dumps()函数的使用,将字典转化为字符串
json_str = json.dumps(dict1)
# json.loads函数的使用,将字符串转化为字典
json_dict = json.loads(json_str)
print(type(json_str))
print(type(json_dict))
print(json_dict)

运行结果:



{'A': 'a', 'B': 'b'}

如果直接将dict类型的数据写入json文件中会发生报错,因此在将数据写入时需要用到json.dump(),

json.load()用于从json文件中读取数据.

import json

dict1 = {'A': 'a', 'B': 'b'}
# json.dumps()函数的使用,将字典转化为字符串
json_str = json.dumps(dict1)
# json.dump()函数的使用,将json信息写进文件
# with open('json_str.json', 'a', encoding='utf-8') as f:
#     f.write(json_str)
file_w = open('json_str.json', 'w', encoding='utf-8')
json.dump(json_str, file_w)
file_w.close()
# json.load()函数的使用,将读取json信息
file_r = open('json_str.json', 'r', encoding='utf-8')
data = json.load(file_r)
print(data)

运行结果:

{"A": "a", "B": "b"}
关注
打赏
1665675218
查看更多评论
立即登录/注册

微信扫码登录

0.0387s