我正在处理一个小问题,将一些 JSON(我无法更改格式,它不是我创建的服务)反序列化为 Python 对象。我已经设法使用 lambda 进行转换,但我现在想使用 object_hook,看看是否可以使用该json.loads
方法进行转换。但是,这就是我现在失败的地方,我想知道是否有人可以指出我正确的方向。
这是我目前拥有的代码:
import json
class Light:
def __init__(self, id, name):
self.id = id
self.name = name
response = '{"1": {"name": "bedroom"}, "2": {"name": "kitchen"}}'
def object_decoder(obj):
return Light(......)
print json.loads(response, object_hook=object_decoder)
如您所见,这response
是一个包含两个键的文档,分别命名为 1 和 2。如果我可以使代码以json.loads
返回两个 Light 对象的方式工作,那就太好了,但是目前,我被卡住了,而且我不知道如何迭代响应来完成这项工作。