我想要Json到Python类。
例如
{'channel':{'lastBuild':'2013-11-12', 'component':['test1', 'test2']}}
self.channel.component[0] => 'test1'
self.channel.lastBuild => '2013-11-12'
你知道json转换的python库吗?
答案 0 :(得分:15)
在json模块的加载函数中使用object_hook
特殊参数:
import json
class JSONObject:
def __init__( self, dict ):
vars(self).update( dict )
#this is valid json string
data='{"channel":{"lastBuild":"2013-11-12", "component":["test1", "test2"]}}'
jsonobject = json.loads( data, object_hook= JSONObject)
print( jsonobject.channel.component[0] )
print( jsonobject.channel.lastBuild )
这个方法有一些问题,比如python中的一些名字是保留的。您可以在__init__
方法中过滤掉它们。
答案 1 :(得分:1)
json
模块会将Json加载到地图/列表列表中。 e.g:
>>> import json
>>> json.loads('["foo", {"bar":["baz", null, 1.0, 2]}]')
[u'foo', {u'bar': [u'baz', None, 1.0, 2]}]
请参阅http://docs.python.org/2/library/json.html
如果要反序列化为Class实例,请参阅此SO线程:Parse JSON and store data in Python Class