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 jsondict1 = {'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'}
<class 'dict'>
<class 'str'>
{"A": "a", "B": "b"}

注意:

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

示例代码:

import jsondict1 = {"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 jsondict1 = {"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 jsondict1 = {'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)

运行结果:

<class 'str'>
<class 'dict'>
{'A': 'a', 'B': 'b'}

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

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

import jsondict1 = {'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"}

json.dumps()、json.dump()、json.loads()和json.dumps()的区别相关推荐

  1. python教程:Json模块中dumps、dump、loads、load函数用法讲解

    1.json.dumps()和loads() json.dumps()将dict类型数据转成str. json.loads()刚好相反,将str类型的数据转成dict. import json dat ...

  2. python json模块有什么用_Python中json模块与jsonpath模块的区别是什么

    Python中json模块与jsonpath模块的区别是什么 发布时间:2021-02-02 11:15:52 来源:亿速云 阅读:94 作者:小新 这篇文章主要介绍了Python中json模块与js ...

  3. python dump函数_python 处理 json 四个函数dumps、loads、dump、load的区别

    1 .json.dumps() 函数是将一个 Python 数据类型列表(可以理解为字典)进行json格式的编码(转换成字符串,用于传播) eg, dict = {"age": & ...

  4. python中json.load()、json.loads()、json.dump()、json.dumps()的区别

    json.load()从文件中读取json字符串 json.loads()将json字符串转换为字典类型 json.dumps()将python中的字典类型转换为字符串类型 json.dump()将j ...

  5. python中json文件处理涉及的四个函数json.dumps()和json.loads()、json.dump()和json.load()的区分

    一.概念理解 1.json.dumps()和json.loads()是json格式处理函数(可以这么理解,json是字符串) (1)json.dumps()将字典转化为字符串 (2)json.load ...

  6. python中dump用法_python中json庫中的load、loads、dump、dumps的區別與用法

    一.json.dumps(i): json中的dumps方法是用來將特定格式的數據進行字符串化的操作,比如列表字典都可以進行字符串化操作然后寫入json的file:而且如果是要寫入json文件就必須要 ...

  7. python 对json数据读取及保存与读取,对dump,dumps,load,loads的理解

    一.对json文件的读取 data1={"programmers":[{ "firstName": "Brett", "lastN ...

  8. 日常小记录json文件(json.load()、json.loads()、json.dump()、json.dumps())

    使用模型预测图片文件时,为了加快速度,早点得到预测结果,可以将预测图片分成多份多开几个命令窗口进行预测. 具体的处理方法是: ①读取需预测图片文件列表, ②把列表分成多份写入多个json文件 ③预测时 ...

  9. json.dumps与json.dump的区别 json.loads与json.load的区别(简洁易懂)

    json.dumps是将一个Python数据类型列表进行json格式的编码解析, 示例如下: >>> import json #导入python 中的json模块 >>& ...

最新文章

  1. php银盾算法,盾灵商品推广系统
  2. Deep Web爬虫
  3. 手把手教你使用YOLOV5训练自己的数据集并用TensorRT加速
  4. 如何删除链表的最后一个节点_面试:删除链表的节点
  5. 适合pythonpandas的软件_适合 Python 入门的 8 款强大工具!
  6. hadoop中如何动态更新集群队列和容量
  7. 计算机组装与维修单招,单招职二 计算机组装与维修试卷.doc
  8. SQLlite数据导入到mySQL_如何批量导入数据到Sqlite数据库
  9. 设计模式之创建者模式
  10. backfire openwrt安装click modular router
  11. SAP副本请求传输教程
  12. diybox路由器设置教程_tp link无线路由器设置图文教程
  13. 开发者都应该知道的 Centos/Docker/Nginx/Node/Jenkins 操作(长文,建议收藏)
  14. 腾讯区块链的三年与它的打法 |链捕手
  15. ip地址与MAC地址 中的 组播
  16. 【QUIC】什么是quic
  17. php是什么症状脾虚什么症状怎么治,【脾虚的表现】脾虚的症状有哪些-有问必答-快速问医生...
  18. 完美日记“变形梦”难圆?
  19. js二分法的简单计算
  20. PB中OpenSheet与open的区别

热门文章

  1. 重磅:Python/Java/C 2020年之争!谁是你心中的NO.1?
  2. TIOBE 1月编程语言排行榜:C语言再度「C 位」出道,Python惜败
  3. 近期必读的6篇NeurIPS 2019零样本学习论文
  4. 如何用Neo4j和Scikit-Learn做机器学习任务?| 附超详细分步教程
  5. AI真人表情包、斗地主AI......DeeCamp学员做了50个好玩又实用的AI项目
  6. 知识图谱、深度学习、AutoML,推荐系统与新技术结合将碰撞出怎样的火花?
  7. 6月技术福利限时免费领
  8. 100 行代码透彻解析 RPC 原理
  9. 如何轻松搞定 CRUD 的创建人、修改人、时间等字段的赋值
  10. 漫画:三种 “奇葩” 的排序算法