前言
本文为在霍格沃兹测试开发学社的学习经历分享,希望有志同道合的小伙伴可以一起交流技术,一起进步~
Json
-
Json是轻量级的数据交换格式,是前端和后端交互的时候,统一的一种数据交换格式
-
友好,易于读写,对机器友好,易于解析和生成
-
由列表和字典组成
使用场景:
-
将对象生成为字符串,存入文件、数据库,在网络传输等
-
解析来自文件、数据库、网络传输的字符串成python对象
-
跨语言的数据交换,如python和c/c++/java/javascripts的数据交换
JSON有两种表示结构,对象和数组。
- 对象结构以”{}”大括号开始和结束,中间部分由0或多个以”,”分隔的键值对(key:value)构成。其中关键字是字符串,而值可以是字符串,数值,true,false,null,对象或数组。
- 数组结构以”[ ]”开始和结束,中间由0或多个以”,”分隔的值列表组成。
常用方法:
-
json.dumps(python_obj) 把数据类型转换成字符串
-
json.loads() 把字符串换成json
-
json.dump() 把数据类型转换成字符串并存储在文件中
-
json.load(file_stream) 把文件打开,把里面的字符转换成数据类型
import json
data = {
'name':'jerry',
'age':'26',
'gender':'female'
}
print(type(data))
data1 = json.dumps(data) #转化成字符串格式
print(data1)
print(type(data1))
data2 = json.loads(data1) #把字符串格式转化成json
print(type(data2))
- python与json数据类型对应关系
python | json | 说明 |
---|---|---|
dict | object | 字典 |
list,tuple | array | 序列 |
str | string | 字符串 |
int,float | number | 数字类型 |
True | true | 布尔值true |
False | false | 布尔值false |
None | null | 空值 |
常用参数实例:
data = {
'a':1,
'b':[12,34,5],
'c':True,
'd':"霍格"
}
#indent控制缩进,ensure_ascii控制编码,如果有中文需要设置成False
json_data = json.dumps(data,ensure_ascii=False,indent=4)
print(json_data)
- json.dumps() 函数是将一个 Python 数据类型列表(可以理解为字典)进行json格式的编码(转换成字符串,用于传播)
dict = {"age": "12"}
json_str = json.dumps(dict)
- json.loads() 函数是将 json 格式数据(字符串)转换为字典