我正在使用web.py
制作简单的网络服务,以返回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序列化对象?
答案 0 :(得分:2)
我认为这里适当的方法是自定义JSONEncoder,它知道如何处理所有特殊类型。然后你可以做json.dump(schedules, cls=MyJSONEncoder)
。以下是extending JSONEncoder的示例(搜索“扩展JSONEncoder”)。
答案 1 :(得分:0)
我猜JSON只支持POD格式,因此您应该为复杂对象使用其他序列化方法。试试pickle,但我不确定。