将对象数组转换为JSON

时间:2014-03-23 17:18:10

标签: python json web.py

我正在使用web.py制作简单的网络服务,以返回array of object。我手动构建JSON String,现在我想用JSON Library替换它。我正在尝试将JSON用于此目的。

我就是这样做的:

return json.dump(schedules.__dict__)

schedulesschedule的列表。这就是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序列化对象?

2 个答案:

答案 0 :(得分:2)

我认为这里适当的方法是自定义JSONEncoder,它知道如何处理所有特殊类型。然后你可以做json.dump(schedules, cls=MyJSONEncoder)。以下是extending JSONEncoder的示例(搜索“扩展JSONEncoder”)。

答案 1 :(得分:0)

我猜JSON只支持POD格式,因此您应该为复杂对象使用其他序列化方法。试试pickle,但我不确定。