Python每日一练——数据存储第三关:如何将一个JSON文档映射为Python对象
年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!**
“height”: 130
}
首先,我们可以通过json模块的loads()方法将JSON文档转为Python字典类型:
coding=utf-8
author_ = 孤寒者
import json
with open(‘test.json’, ‘r’, encoding=‘utf-8’) as f:
jsonStr = f.read()
product = json.loads(jsonStr)
print(type(product))
print(product[‘name’])

我们在loads()方法里使用对象钩子即可实现将一个JSON文档映射为Python对象。分析思路:
- 我们使用对象钩子实质上总共做了两步:先通过loads()方法将JSON文档转换为dict对象,然后将这个dict对象同时创建Product对象->将dict对象作为参数传入Product对象的构造方法
__init__()方法中的第二个参数,即d。而这个d其实就是包含了这个JSON文档的字典对象,我们又在__init__()方法中将d赋值给了__dict__(就相当于你一个个写类里面的属性名=属性值),这就会将字典里的key和value映射为Product对象里的属性和属性值。
coding=utf-8
author_ = 孤寒者
import json
class Product:
def init(self, d):
self.dict = d
with open(‘test.json’, ‘r’, encoding=‘utf-8’) as f:
jsonStr = f.read()
product = json.loads(jsonStr, object_hook=Product)
print(type(product))
print(product[‘name’]) # 这样就不行了~
print(product.name)

第二种方法:
也是使用了对象钩子,不过与第一种方法不同的是,此时对象钩子指定的不再是类,而是指定一个转换函数,通过这个函数返回对象。
coding=utf-8
author_ = 孤寒者
import json
class Product:
def init(self, d):
self.dict = d
with open(‘test.json’, ‘r’, encoding=‘utf-8’) as f:
jsonStr = f.read()
def json2Product(d):
return Product(d)
product1 = json.loads(jsonStr, object_hook=json2Product)
print(type(product1))
print(product1.name)
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。






既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)
年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!**
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)