概述
- json是一种轻量级的结构化数据存储标准;
- 其结构直观、体积小(便于网络传输)、编码和解码方便,应用领域十分广泛;
- json对数据的描述,是使用{}表示对象,使用[]表示集合,使用键值对表示属性和值;
- 这种数据描述方式与Python语言中的字典、列表十分相似,因此转化也十分方便;
- Python标准库提供了专用的json解析模块,其名称也叫json;
@ Python数据和json字符串的相互转化
import json
# 定义一个待转化的Python对象,可以是字典或列表
data = {"name": "张三", "age": 20, "hobby": ["堆代码", "reading", "girls"]}
# data = [
# {"name":"张三","age":20,"hobby":["堆代码","reading","girls"]},
# {"name":"李四","age":30,"hobby":["堆代码","reading","搅基"]}
# ]
# 将Python数据(字典或列表)转换为json字符串,注意ensure_ascii默认是为True的
jStr = json.dumps(data, ensure_ascii=False)
print(type(jStr), jStr)
print("----------")
# 将json字符串读入为Python数据(字典或列表)
pyObj = json.loads(jStr, encoding="utf-8")
print(type(pyObj),pyObj)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
执行结果:
@Python数据和json文件的相互转化
import json
# 定义一个待转化的Python对象,可以是字典或列表
# data = {"name": "张三", "age": 20, "hobby": ["堆代码", "reading", "girls"]}
data = [
{"name":"张三","age":20,"hobby":["堆代码","reading","girls"]},
{"name":"李四","age":30,"hobby":["堆代码","reading","搅基"]}
]
# 将Python数据(列表或字典)写出到json文件
with open("./doc/data.json", "a", encoding="utf-8") as file:
json.dump(data, file, ensure_ascii=False)
print("文件写出成功!")
# 将json文件读入为Python数据(列表或字典)
with open("./doc/data.json", "r", encoding="utf-8") as file:
data = json.load(file)
print("json文件成功加载为:",type(data))
print(data)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
执行结果