Use my class object as JSON in python
本问题已经有最佳答案,请猛点这里访问。
我有"player"类,它有几个int和string fild。如何将其编码为JSON对象?
将
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | import json class Player(object): def __init__(self, name, number): self.name = name self.number = number def encode_json(o): if isinstance(o, Player): return o.__dict__ # or, alternatively ... return { 'name': o.name, 'number': o.number, } raise TypeError('Cannot serialize object of type %s' % type(o)) doc = {'team': [ Player('Joe', 1), ]} print(json.dumps(doc, default=encode_json)) |
在许多情况下,仅仅返回
如果应该转换对象的所有成员(即没有用于优化的额外成员,如缓存值),则可以使用
1 | json.dumps(obj.__dict__) |
对于加载器来说,如果上下文没有暗示类名称,那么最好也添加一个包含类名称的成员…
1 2 3 | d = obj.__dict__.copy() d['classname'] = obj.__class__.__name__ return json.dumps(s) |
但是,如果对象还包含对其他对象的引用,则必须首先决定在传递这些释放时使用的模式(例如,使用对象ID值将这些成员序列化到