1 json.loads()

将json格式的数据转化为字典类型

data_json = '{"msg": "登录成功", "code": "10001", "data": null, "status":1}'
data_dict = json.loads(data_json, encoding="utf-8")

  

这个时候,如果使用 eval(data_json) 将会报错。

因为这个json格式的数据中,存在python中没有的数据类型:null

如果没有null,eval方法是可以实现将数据转化为字典类型。

NameError: name 'null' is not defined

所以,python中要将json格式的数据转化为字典型,就用到:loads。

2 json.load()

从文件中读取json类型的数据,并转化为字典类型

data_json = '{"msg": "登录成功", "code": "10001", "data": null, "status":1}'
with open("json_file.txt", mode="r", encoding="utf-8") as file:
date_dict = json.load(file)

  

3 json.dumps()

将Python中特定类型进行字符串化操作,即转换为json格式的数据

注意:字典、列表等都可以进行字符串话操作,变为json格式。

如果存在中文,不使用【ensure_ascii=False】,写入文件时,中文会被编码。

Python中的None对应Json中的null

one_dict = {"name": "菲菲", "age": 18, "money": None}
one_str = str(one_dict)
one_json = json.dumps(one_dict)
two_json = json.dumps(one_dict, ensure_ascii=False)

  

one_tuple = ["菲菲", 18, None]
one_str = str(one_tuple)
one_json = json.dumps(one_tuple)
two_json = json.dumps(one_tuple, ensure_ascii=False)

  

4 json.dump()

将字典类型转化为json字符串格式,写入到文件中

one_dict = {"name": "字典型", "age": 18, "money": None}
with open("json_file.txt", mode="a",encoding="utf-8") as file:
json.dump(one_dict, file, ensure_ascii=False)
one_tuple = ["菲菲", 18, None]
with open("json_file.txt", mode="a", encoding="utf-8") as file:
json.dump(one_tuple, file, ensure_ascii=False)

看下面示例代码以及运行结果:

indent可以美化格式。

one_dict = [{"Date": "8月17日", "Location": "图书馆", "Price": 0.00}, {"Date": "8月18日", "Location": "图书馆", "Price": None}]
with open("write_json.txt", mode="a", encoding="utf=8") as one_file:
json.dump(one_dict, one_file, ensure_ascii=False, indent=2)

总结:

loads  将json格式的数据转化为dict

dumps  将字典、列表t等类型的数据转化成json格式

load  读取json格式文件,并返回dict

dump  将字典、列表等格式的数据转化为json格式,写入文件

试了一下,

load,loads好像是只能转化成为dict。(反序列化,流——对象)

dump,dumps可以将列表,字典数据转化为json格式。(序列化,对象——可保存或可传输格式)

单词后面有s,都是对文件操作。

最新文章

  1. Java设计模式11:外观模式
  2. Android Studio 连接真机不识别
  3. ios编码转换 国标 UTF-8
  4. 12-8 php基础
  5. trace工具,c++/c#/python
  6. pyzmq missing when running ipython notebook
  7. (1)quartz集群调度机制调研及源码分析---转载
  8. Tiny4412之C语言实现流水灯,Tiny4412裸机程序[3]
  9. PHP引用传值规范问题
  10. FC网络学习笔记01
  11. java_ java多线程返回函数结果
  12. while循环语句的几种方式
  13. Python练习28
  14. [转] 深刻理解Python中的元类(metaclass)
  15. 我所知道的window.location
  16. python--socket/Socketerver并发/udp
  17. LinuxCPU性能监控工具---mpstat
  18. java web (sevlet)请求之get,post,forward,redirect
  19. Knockout.Js官网学习(加载或保存JSON数据)
  20. Idea 2017.3以后版本的破解(亲测有效)转

热门文章

  1. 【LeetCode】495. Teemo Attacking 解题报告(Python & C++)
  2. 【LeetCode】589. N-ary Tree Preorder Traversal 解题报告 (Python&C++)
  3. JSON(JS 对象简谱,一种数据交换格式)
  4. element message多次点击出现多个提示框,如何显示一个或者在同一位置显示
  5. [数学]高数部分-Part VI 重积分
  6. CS5213设计HDMI转VGA带音频方案+设计电路|直接替代AG6200 AG6201
  7. 使用 windows bat 脚本命令一键实现快速配置JDK 环境变量
  8. 过年有燃放烟花爆竹禁令那我们用css写一个仙女棒烟花看看吧
  9. vue中把一个事件绑定到子组件上
  10. Centos7 logrotate日志切割