将 SQLAlchemy 查询结果序列化为 JSON 格式可能是使用 Web 应用程序时的一项常见任务。虽然 Django 提供自动序列化,但 SQLAlchemy 没有开箱即用的序列化程序。
您已尝试使用 jsonpickle.encode 和 json.dumps 进行序列化SQLAlchemy 对象,但遇到以下错误:
TypeError: <Product('3', 'some name', 'some desc')> is not JSON serializable
要克服序列化问题,您可以创建一个自定义类方法,将对象转换为字典:
class User: def as_dict(self): return {c.name: getattr(self, c.name) for c in self.__table__.columns}
这个 as_dict() 方法动态生成对象的字典表示通过迭代其表列。然后,您可以使用 User.as_dict() 序列化对象并将其传递给 JSON 编码。
有关将 SQLAlchemy 对象转换为字典的更多见解,请参阅以下资源:
通过实现自定义序列化方法,可以成功将 SQLAlchemy 查询结果转换为 JSON 格式,使您能够使用 JavaScript 数据网格(如 JQGrid)中的数据。
以上是如何将 SQLAlchemy ORM 对象序列化为 JSON?的详细内容。更多信息请关注PHP中文网其他相关文章!