2024-05-19 09:15:24 发布
网友
标准的python json模块只能将json字符串转换为dict结构。
但我更喜欢将json转换为具有“父子”关系的模型对象结构。
我在Android应用程序中使用google gson,但不知道哪个python库可以做到这一点。
可以让json模块构造dict,然后使用^{}到transform the dict into an object,如下所示:
>>> import json >>> >>> class Person(object): ... firstName = "" ... lastName = "" ... >>> >>> def as_person(d): ... p = Person() ... p.__dict__.update(d) ... return p ... >>> >>> s = '{ "firstName" : "John", "lastName" : "Smith" }' >>> o = json.loads(s, object_hook=as_person) >>> >>> type(o) <class '__main__.Person'> >>> >>> o.firstName u'John' >>> >>> o.lastName u'Smith' >>>
您可以编写自己的序列化程序以使其与json一起工作,但为什么不使用支持它的现成的^{}:
>>> import yaml >>> class Foo: ... def bar(self): ... print 'Hello I am bar' ... def zoo(self,i): ... self.i = i ... print "Eye is ",i ... >>> f = Foo() >>> f.zoo(2) Eye is 2 >>> s = yaml.dump(f) >>> f2 = yaml.load(s) >>> f2.zoo(3) Eye is 3 >>> s '!!python/object:__main__.Foo {i: 2}\n' >>> f2 = yaml.load(s) >>> f2.i 2
在2018年,可以使用cattrs,使用attrs和mypy的静态类型
可以让json模块构造dict,然后使用^{} 到transform the dict into an object,如下所示:
您可以编写自己的序列化程序以使其与json一起工作,但为什么不使用支持它的现成的^{} :
在2018年,可以使用cattrs,使用attrs和mypy的静态类型
相关问题 更多 >
编程相关推荐