【问题标题】:Convert an array of objects to JSON将对象数组转换为 JSON
【发布时间】:2014-03-23 17:18:09
【问题描述】:

我正在使用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 中序列化对象?

【问题讨论】:

    标签: python json web.py


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • Pickle 不是一个选项,在这里,因为这是一个网络服务。
      猜你喜欢
      • 2012-07-21
      • 2020-10-02
      • 1970-01-01
      • 1970-01-01
      • 2018-09-12
      • 2015-10-30
      • 1970-01-01
      相关资源
      最近更新 更多