d = dict(name=‘Kaven’, age=17, sex=‘Male’)
print(json.dumps(d)) # {“name”: “Kaven”, “age”: 17, “sex”: “Male”}
说明:
dumps()方法返回一个str,内容就是标准的JSON。类似的,dump()方法可以直接把JSON写入一个 Object。
要把JSON反序列化为Python对象,我们可以用loads()或者对应的load()方法,前者把JSON的字符串反序列化,后者从Object中读取字符串并反序列化:
比如这样:
import json
json_str = ‘{“name”: “Kaven”, “age”: 17, “sex”: “Male”}’
print(json.loads(json_str)) # {‘name’: ‘Kaven’, ‘age’: 17, ‘sex’: ‘Male’}
Python的dict对象可以直接序列化为JSON的{},那么如何用class对象,比如定义Person类,然后序列化?
dumps 可选参数default就是把任意一个对象变成一个可序列为JSON的对象,我们只需要为Person专门写一个转换函数,再把函数传进去即可:
‘’’
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
‘’’
import json
class Person(object):
slots = (‘name’, ‘age’) # 通常class的实例都有一个__dict__属性,它就是一个dict,
用来存储实例变量。也有少数例外,比如定义了__slots__的class,大家可以开启后运行看看报错信息
def init(self, name, age, sex):
self.name = name
self.age = age
self.sex = sex
def PersonToDict(cls):
return {
‘name’: cls.name,
‘age’: cls.age,
‘sex’: cls.sex
}
s = Person(‘Kaven’, 17, ‘Male’)
print(json.dumps(s, default=PersonToDict))
print(json.dumps(s, default=lambda obj: obj.dict)) 输出和上面一样
输出 : {“name”: “Kaven”, “age”: 17, “sex”: “Male”}
这样,Person实例首先被PersonToDict()函数转换成dict,然后再被序列化为JSON,大家看到下面有个lambda匿名函数,他的用处可大了,比如:
下次如果遇到一个Apple/Banaba等类的实例,可以把任意class的实例变为dict:
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)
盖了95%以上前端开发知识点,真正体系化!**
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)
