问题描述
我正在使用web.py
制作简单的Web服务,以返回array of object
。
我当时是在手动构造JSON String
,现在想用JSON Library
替换它。
我正在尝试为此目的使用JSON
。
这就是我的做法:
return json.dump(schedules.__dict__)
schedules
是名单schedule
。
schedule
对象的外观如下所示:
class Schedule:
def __init__(self):
self._matchDate = None
self._matchTime = None
@property
def matchDate(self):
return self._matchDate
@property
def matchTime(self):
return self._matchTime
@matchTime.setter
def matchTime(self, value):
self._matchTime = value
@matchDate.setter
def matchDate(self, value):
self._matchDate = value
这是我得到的错误:
<type 'exceptions.AttributeError'> at /Schedule
'list' object has no attribute '__dict__'
Python /home/faizan/PycharmProjects/Soccer/Rest.py in GET, line 24
Web GET http://localhost:8080/Schedule
我该如何序列化JSON中的对象?
1楼
我认为这里的正确方法是自定义JSONEncoder,它知道如何处理所有特殊类型。
然后,您可以执行json.dump(schedules, cls=MyJSONEncoder)
。
这是 (搜索“扩展JSONEncoder”)的示例。
2楼
我猜想JSON仅支持POD格式,因此您应该对复杂对象使用其他序列化方法。 尝试 ,但我不确定。