是否有一个python json库可以将json转换为模型对象,类似于google gson?
标准python json模块只能将json字符串转换为dict结构 但我更喜欢将json转换为具有“父子”关系的模型对象结构是否有一个python json库可以将json转换为模型对象,类似于google gson?,python,json,Python,Json,标准python json模块只能将json字符串转换为dict结构 但我更喜欢将json转换为具有“父子”关系的模型对象结构 我在Android应用程序中使用google gson,但不知道哪个python库可以做到这一点。您可以编写自己的序列化程序,使其与json一起工作,但为什么不使用支持它的现成的: >>> import yaml >>> class Foo: ... def bar(self): ... print 'Hello I
我在Android应用程序中使用google gson,但不知道哪个python库可以做到这一点。您可以编写自己的序列化程序,使其与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
您可以让json模块构造一个dict,然后使用to,如下所示:
>>> 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
>>>
>>>类人(对象):
... firstName=“”
... lastName=“”
...
>>>
>>>def as_人员(d):
... p=人()
... p、 目录更新(d)
... 返回p
...
>>>
>>>s='{“firstName”:“John”,“lastName”:“Smith”}'
>>>加载(s,object\u hook=as\u person)
>>>
>>>类型(o)
>>>
>>>o.名字
“约翰”
>>>
>>>o.姓氏
u'Smith'
>>>
在2018年,可以使用,使用静态键入,谢谢你的建议,但出于向后兼容性的原因,我需要使用JSON。Tt与object_hook一起工作。谢谢@Bogdan。model中的model如何?如果对象有datetime,它将不起作用。