python - 如何将 SqlAlchemy 结果序列化为 JSON?

Django 有一些很好的自动序列化从 DB 到 JSON 格式的 ORM 模型。

如何将 SQLAlchemy 查询结果序列化为 JSON 格式?

我试过 jsonpickle.encode 但它对查询对象本身进行编码。 我试过 json.dumps(items) 但它返回了

TypeError: <Product('3', 'some name', 'some desc')> is not JSON serializable

将 SQLAlchemy ORM 对象序列化为 JSON/XML 真的那么难吗?它没有任何默认的序列化程序吗?现在序列化 ORM 查询结果是很常见的任务。

我需要的只是返回 SQLAlchemy 查询结果的 JSON 或 XML 数据表示。

需要在javascript datagird中使用JSON/XML格式的SQLAlchemy对象查询结果(JQGrid http://www.trirand.com/blog/)

最佳答案

您可以将对象输出为字典:

class User:
   def as_dict(self):
       return {c.name: getattr(self, c.name) for c in self.__table__.columns}

然后你使用 User.as_dict() 序列化你的对象。

如 Convert sqlalchemy row object to python dict 中所述

https://stackoverflow.com/questions/5022066/

相关文章:

http - Wget 将文档和标题输出到 STDOUT

linux - 如何删除 "Argument list too long"时超过 3 天的所有文件?

python - 你如何在已经创建的 virtualenv 中设置你的 pythonpath?

python - 检测和排除 pandas DataFrame 中的异常值

python - 为什么 Python 中的 @foo.setter 对我不起作用?

python - 如何在 Python 中将 RGB 图像转换为灰度图像?

linux - 如何计算包括子目录在内的代码行数

python - 导入错误 : No module named PIL

linux - 带有 -i 选项的 sed 命令(就地编辑)在 Ubuntu 上运行良好,但在 Ma

linux - tcpdump:本地主机到本地主机