python-json数据转换为python数据JSON对象与Python字典的区别
JSON对象是javascript object即javascript中的对象,是⼀种通⽤的格式,格式严格,不⽀持备注。
JSON⽂本和JSON对象的区别:
JSON⽂本是符合JSON格式的⽂本,实际上是⼀个字符串
JSON对象是内存中⼀个对象,拥有属性和⽅法,可以通过对象获取其中的参数信息
Python中我们⼀般提到JSON对象指的是字典
Python的字典的格式和JSON格式,稍有不同:
字典中的引号⽀持单引号和双引号,JSON格式只⽀持双引号
字典中的True/False⾸字母⼤写,JSON格式为true/false
字典中的空值为None, JSON格式为null
'''
json 是数据存储和交换⽂本信息的语法
javaScript对象表⽰法
⽤于数据传递网站计数器实现
json中的数据格式        python中的数据
数字整型浮点数
字符串字符串
布尔值  true false        True  False
数组列表。元祖
对象字典
null                      None
常见的json数据格式
{
code:200,
values:[
{"name":'lal','age':20}]
printf的返回值是多少}
{} josn数据对应json对象
[] josn数组
'''
1import json
2 age = 10
3#dumps把数据转化为json语法中的数值数据
4 json_data = json.dumps(age)
5print(json_data)
6
7 name = '橙⼦'
8 json_dta =json.dumps(name)
9print(json_data)
10
11 person ={"chinese":99}
12 json_data =json.dumps(person)
13print(json_data)
14
15
16
17#在python中可⾃定义类型⾃定义的类型在json中没有对应的数据格式
18#需要制定编码规则通过编码规则将⾃定义类型的数据转换为json可识别的数据
19class Person():
20def__init__(self,name):
21        self.name = name
22def__str__(self):
23return f"Person(name={self.name})"
24#__repr__通过容器调⽤对象调⽤__repr__
25#__str__当打印对象时输出设定的格式信息
26__repr__ =__str__
27
28 p = Person("橙⼦")
29print(p)
30print(type(p))#<class '__main__.Person'>
31#在json中⽆对应数据
java进度条库
32
33#存储Person类型的数据-需获取json可识别数据格式
34#⽅式1
35#对象__dict__获取对象的特征信息以字典形式存储
36 json_data = json.dumps(p.__dict__)
37print(json_data)#{"name": "\u6a59\u5b50"}
38#本质上存储的是字典
39
40#loads解析为json数据
41 python_data =json.loads(json_data)
42print(python_data)
43
44#对应对象为Person对象需要根据数据信息创建对象
45 p = Person(python_data["name"])
46print(p,type(p))#Person(name=橙⼦) <class '__main__.Person'>
47
48#⽅法⼆存储时设置编码规则存的是指定的编码规则数据
49#获取的时候要对应有⼀个解码规则在根据数据解析成对象
50#对以上操作封装
51#PersonEncoder编码
52class PersonEncoder(json.JSONEncoder):
53#重写⽅法
54#这个⽅法在dumps时内部⾃动调⽤
55#⼦类重写⽗类的⽅法⼦类对党调⽤时只能调⽤重写因为会吧⽗类⽅法覆盖56def default(self, o):
57#把规则写出来
58#o  表⽰要进⾏json转换的对象
59return o.__dict__
javascript期末作业个人网页
60 P =Person('橙⼦2')
61#CLS制定编码规则
62#对象__dict__获取对象的特征信息以字典形式存储
63 json_data =json.dumps(P,cls=PersonEncoder)
64print(json_data)#{"name": "\u6a59\u5b502"}
65
66#解析JSONDecoder
67class PersonDecoder(json.JSONDecoder):
68def__init__(self):
69#指定解码规则
70#object_hook对象挂钩-对象解析-接受的是⼀个函数
python请求并解析json数据
71        super().__init__(object__python_obj)
72
73def to_python_obj(self,d):
prompt词根词缀74#d接受的是字典,当前制定的转化为json对象的数据格式
75return Person(d['name'])
76
77#解析操作
78 python_data =json.loads(json_data,cls=PersonDecoder)
79print(python_data)#Person(name=橙⼦2)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。