将 SQLAlchemy 查询结果转换为 JSON
将 SQLAlchemy 查询结果序列化为 JSON 可能是一个挑战,特别是没有像 Django ORM 模型那样的自动序列化。为了克服这个问题,可以创建一个自定义 JSON 序列化器或使用现有的库。
一种方法是通过在模型类中创建 to_dict() 方法来手动定义序列化过程:
class User: def to_dict(self): return {c.name: getattr(self, c.name) for c in self.__table__.columns}
此函数将模型实例转换为字典,然后可以轻松地将其转换为 JSON。
另一种选择是利用对象序列化库,例如jsonpickle.json但是,请务必注意 jsonpickle.encode() 对查询对象本身进行编码。相反,在将模型转换为字典后使用 jsonpickle.encode(item.to_dict())。
此外,使用 json.dumps(items) 将导致 TypeError,因为 SQLAlchemy 对象本身不是 JSON 可序列化的。 to_dict() 方法确保对象被转换为适合 JSON 序列化的字典格式。
以上是如何高效地将SQLAlchemy查询结果转换为JSON?的详细内容。更多信息请关注PHP中文网其他相关文章!