Python json库中load、loads、dump、dumps的区别与用法
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,都是对文件操作。

Python json库中load、loads、dump、dumps的区别与用法的更多相关文章
- Python 标准库中的装饰器
题目描述 1.简单举例 Python 标准库中的装饰器 2.说说你用过的 Python 标准库中的装饰器 1. 首先,我们比较熟悉,也是比较常用的 Python 标准库提供的装饰器有:property ...
- (转)python标准库中socket模块详解
python标准库中socket模块详解 socket模块简介 原文:http://www.lybbn.cn/data/datas.php?yw=71 网络上的两个程序通过一个双向的通信连接实现数据的 ...
- Linq中 AsQueryable(), AsEnumerable()和ToList()的区别和用法
Linq中 AsQueryable(), AsEnumerable()和ToList()的区别和用法:在写LINQ语句的时候,往往会看到AsEnumerable() ,AsQueryable() 和T ...
- MVC+Spring.NET+NHibernate .NET SSH框架整合 C# 委托异步 和 async /await 两种实现的异步 如何消除点击按钮时周围出现的白线? Linq中 AsQueryable(), AsEnumerable()和ToList()的区别和用法
MVC+Spring.NET+NHibernate .NET SSH框架整合 在JAVA中,SSH框架可谓是无人不晓,就和.NET中的MVC框架一样普及.作为一个初学者,可以感受到.NET出了MV ...
- python中json库中的load、loads、dump、dumps的区别与用法
一.json.dumps(i): json中的dumps方法是用来将特定格式的数据进行字符串化的操作,比如列表字典都可以进行字符串化操作然后写入json的file:而且如果是要写入json文件就必须要 ...
- Python Json模块中dumps、loads、dump、load函数介绍
1.json.dumps() json.dumps()用于将dict类型的数据转成str,因为如果直接将dict类型的数据写入json文件中会发生报错,因此在将数据写入时需要用到该函数. import ...
- Python Json模块中dumps、loads、dump、load函数介绍哦
来自: https://www.jb51.net/article/139498.htm 1.json.dumps() json.dumps()用于将dict类型的数据转成str,因为如果直 ...
- python json库
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写. 1.json库的使用 使用 JSON 函数需要导入 json 库:import jso ...
- 使用Python PIL库中的Image.thumbnail函数裁剪图片
今天,是我来到博客园的第五天,发现自己还没有头像,想着上传ubuntu系统中我很喜欢的一个背景图片来当头像,但是因为图片过大,上传失败了.那么,我们如何使用python中强大的PIL库来进行图片裁剪呢 ...
随机推荐
- C. Unfair Poll
http://codeforces.com/problemset/problem/758/C C. Unfair Poll time limit per test 1 second memory li ...
- 【LeetCode】678. Valid Parenthesis String 解题报告(Python)
[LeetCode]678. Valid Parenthesis String 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzhu 个人 ...
- D. Chloe and pleasant prizes
D. Chloe and pleasant prizes time limit per test 2 seconds memory limit per test 256 megabytes input ...
- 【C\C++笔记】register寄存器关键字
使用寄存器变量提高运行速度 1未使用寄存器组 #include<stdio.h> int main(){ unsigned long a=0; for(int i=0;i<10000 ...
- CHARACTERIZING ADVERSARIAL SUBSPACES USING LOCAL INTRINSIC DIMENSIONALITY
目录 概 主要内容 LID LID估计 算法 实验 1 2 3 4 5 Ma X, Li B, Wang Y, et al. Characterizing Adversarial Subspaces ...
- MySQL数据库报错 > 1366 - Incorrect string value: ‘\xE6\xB1\x9F\xE6\x96\x87‘ for column ‘Teacher‘ at row 1
数据库报错这个多半是数据库在创建的时候没有选择字符编码,导致输入中文的时候出现报错. > 1366 - Incorrect string value: '\xE6\xB1\x9F\xE6\x96 ...
- 编写Java程序,在子类老虎中重写父类动物的吃食方法
返回本章节 返回作业目录 需求说明: 在子类老虎中重写父类动物的吃食方法 实现思路: 在子类老虎中重写父类动物的吃食方法的实现思路如下: 创建各种动物的父类Animal类,在该类中定义eat()方法. ...
- 编写Java程序,模拟五子棋博弈过程中的异常声明和异常抛出
返回本章节 返回作业目录 需求说明: 模拟五子棋博弈过程中的异常声明和异常抛出,判断用户所下棋子的位置,是否超越了棋盘的边界. 棋盘的横坐标的范围为0-9,纵坐标范围为0-14,如果用户所放棋子的坐标 ...
- 三角网格上的寻路算法Part.2—A*算法
背景 继上一篇三角网格Dijkstra寻路算法之后,本篇将继续介绍一种更加智能,更具效率的寻路算法-A*算法,本文将首先介绍该算法的思想原理,再通过对比来说明二者之间的相同与不同之处,然后采用类似Di ...
- 合并区间(c++)
L. 合并区间 内存限制:256 MiB 时间限制:1000 ms 标准输入输出 题目类型:传统 评测方式:文本比较 题目描述 给出n个闭区间,把其中有重叠的区间合并为一个区间. 例如,给出4个区间, ...