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

2 投票
2 回答
9302 浏览
提问于 2025-04-18 02:38

我需要把一个json字符串转换成Python对象。比如说,

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

    }    
}

这里有两个Python类,分别是PersonAddress,用来生成Python对象。但是我不知道怎么把它们对应起来。

2 个回答

-3

你可以用几种方法来实现这个。一个方法是使用simplejson的字面翻译。我要说,创建一个可扩展的方法最简单的方式就是创建一个具有相同结构的类。

1

你可以很简单地把JSON字符串转换成Python的字典,方法是使用json.loads

import json

d = json.loads(s)

不太清楚你的PersonAddress需要什么参数,不过如果它们接受的参数名字和字典里的内容一致,那就可以像这样简单:

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

这里的**是把字典里的内容拆开,变成关键字参数。

撰写回答