我试图对描述汽车的JSON进行建模:
{
colour : "green"
specs : {
brakes : "good brakes"
}
}
汽车与规格“有”关系。以下是我如何实现的:
import json
class Car :
def __init__(self , colour, specs):
self.colour = colour
self.specs = specs
class Specs :
def __init__(self , brakes):
self.brakes = brakes
specs = Specs("good brakes")
car = Car("Green" , specs)
print(json.dumps(car.__dict__))
返回:
TypeError: Object of type Specs is not JSON serializable
为了对“has a”关系建模,我应该在Car
中创建自己的to_json函数吗
对您的方法进行修改,以检查子对象是否具有dicts,在这种情况下以及其他简单情况下都可以使用。例如:
但在许多情况下,这一点会下降:
__slots__
您可以扩展该方法来尝试并解释其中的每一个,但现在可能是时候咬紧牙关,要么使用序列化库(如其他地方所建议的),要么按照您的建议编写自己的特定于对象的
to_dict()
方法了你应该考虑为你的汽车类设置一个编码器类,如下面的
CarEncoder的默认方法将由json.dumps调用。在那里,我用规范字典取代了规范
相关问题 更多 >
编程相关推荐