json是一种轻量级的数据交换,易用阅读和编写,同时也易于机器解析和生成。
json是一种基础文本,独立于语言的轻量级交换格式。
语法:
(1). json名称/值对,名称/值对包含在大括号,用双引号引起,中间用冒号分割
如:{“name”:“Python”}
(2).json值,json值可以是数字(整数或者浮点数)、字符串(在双引号中)、逻辑值(Ture或者False),数组(在中括号中)、对象(在大括号中)、和null
(3).json对象。json对象在{}中书写,多个json名称/值以逗号分割
如:{“name”:“python”,“age”:25}
(4).json数组,json数组在中括号中书写,可以包含多个json对象
如:
[
{“name”:“jd”,“url”:“www,jd.com”},
{“name”:“taobao”,“url”:“www.taobao.com”}
]
python3的json模块:用于执行序列化和反序列化功能
1.序列化(Encoding):把一个Python对象编码转化为Json字符串
1).json.dumps()函数将Python对象编码json字符串(序列化)
语法:
import json
data = {‘name’:“wangwu”,‘lang’‘python’.‘java’),‘age’:20}
data_json = json.dumps(data)
2.反序列化(Dencoding):把Json格式字符串解码转化为Python数据对象
2).json.loads()函数将json格式字符串转换为Python对象
2.json字符串和Python原始类之间的数据类型对应关系
类对象不能直接用json.dumps(obj)序列化对象,需要在对象中编写,转换函数
import json
class Man(object):
def __init__(self, name, age):
self.name = name
self.age = age
# 序列化函数
def objson(obj):
return {
"name": obj.name,
"age": obj.age
}
man = Man('tom', 31)
json1 = json.dumps(man, default=objson)
print(json1)
输出结果
{"name": "tom", "age": 31}