如何将复杂的json字符串反序列化为python对象?

时间:2014-04-14 06:32:37

标签: python json

我需要将json字符串转换为python对象。例如,

{
"person":{
    "name":"aa",
    "age":"12",
    "address":{
        "city":"cc",
        "road":"kk"
    }

    }    
}

有两个用于生成python对象的python类PersonAddress。但我不知道如何绘制它。

2 个答案:

答案 0 :(得分:1)

您可以使用json.loads

轻松地将JSON字符串转换为本机Python字典
import json

d = json.loads(s)

目前尚不清楚PersonAddress采用什么参数,但如果它们采用与字典内容匹配的关键字参数,则可以如此简单:

d['address'] = Address(**d['address'])
p = Person(**d)

其中**将字典解包为关键字参数。

答案 1 :(得分:-2)

您可以通过几种方式完成此操作。一种方法是simplejson直译。我想说创建一个可扩展方法的最简洁方法是创建一个具有相同结构的类。