当前位置: 首页 > 编程笔记 >

sqlalchemy 将查询结果转换为字典

邹嘉荣
2023-03-14
本文向大家介绍sqlalchemy 将查询结果转换为字典,包括了sqlalchemy 将查询结果转换为字典的使用技巧和注意事项,需要的朋友参考一下

示例

首先为示例进行设置:

import datetime as dt
from sqlalchemy import Column, Date, Integer, Text, create_engine, inspect
fromsqlalchemy.ormimport sessionmaker
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()
Session = sessionmaker()

class User(Base):
    __tablename__ = 'users'

    id = Column(Integer, primary_key=True)
    name = Column(Text, nullable=False)
    birthday = Column(Date)

engine = create_engine('sqlite://')
Base.metadata.create_all(bind=engine)
Session.configure(bind=engine)

session = Session()
session.add(User(name='Alice', birthday=dt.date(1990, 1, 1)))
session.commit()

如果您要分别查询列,则该行是KeyedTuple具有_asdict方法的。方法名称以单个下划线开头,以匹配namedtupleAPI(它不是私有的!)。

query = session.query(User.name, User.birthday)
for row in query:
    print(row._asdict())

使用ORM检索对象时,默认情况下不可用。应该使用SQLAlchemy检查系统。

def object_as_dict(obj):
    return {c.key: getattr(obj, c.key)
            for c in inspect(obj).mapper.column_attrs}

query = session.query(User)
for user in query:
    print(object_as_dict(user))

在这里,我们创建了一个函数来进行转换,但是一个选择是向基类添加一个方法。

declarative_base您可以从自己的类中创建它,而不必像上面那样使用:

from sqlalchemy.ext.declarative import as_declarative

@as_declarative()
class Base:
    def _asdict(self):
        return {c.key: getattr(self, c.key)
                for c in inspect(self).mapper.column_attrs}
           

 类似资料:
  • 本文向大家介绍sqlalchemy 将结果转换成字典,包括了sqlalchemy 将结果转换成字典的使用技巧和注意事项,需要的朋友参考一下 示例 在SQLAlchemy核心中,结果为RowProxy。如果您需要显式词典,可以致电dict(row)。 首先为示例进行设置: 然后从结果行创建字典:            

  • 我正在尝试实现REST API,其中一部分是将数据格式化为JSON。我能够从mysql数据库中检索数据,但是我收到的对象并不是我所期望的。这是我的代码 结果: 如何实现返回如下所示的json格式:

  • 问题内容: 我没主意了。现在,我有一天在Google上进行了谷歌搜索,但仍然找不到我的问题的任何有用答案。 到目前为止,我一直尝试使用原始SQL,但是没有运气。 使用此原始SQL查询时,返回的结果为零,但是在其中运行相同的查询时,返回正确的结果。 我进一步发现,将查询打印到终端时,它不能正确处理该子句。 打印时我的查询如下所示: 如何将此SQL查询转换为SQLAlchemy 我的桌子看起来像这样:

  • 我有两个表TABLE_A,列名为COLUMN1 COLUMN2 COLUMN3 COLUMN 4 COLUM5 abc def ghi jkl mno 123 456 789 001 121 TABLE_B列名为COLUMN6 COLUMN7,其数据为 专栏5 124 第4列bca 第3列aaa 列5 BBB 所以我将Table_A的列名作为Table_B中的数据 所以我想在一个查询中做这样的事情

  • 问题内容: 在这个问题上的任何帮助将不胜感激。 所以基本上我想对我的SQL数据库运行查询并将返回的数据存储为Pandas数据结构。 我已附上查询代码。 我正在阅读有关Pandas的文档,但是在识别查询的返回类型时遇到了问题。 我试图打印查询结果,但没有提供任何有用的信息。 谢谢!!!! 因此,我有点想了解变量“ resoverall”的格式/数据类型是什么,以及如何将其与PANDAS数据结构一起使

  • 问题内容: 我想将以下SQL查询转换为Elasticsearch之一。谁能帮上忙 我尝试了以下方法: 但不确定我是否做对了,因为它无法验证结果。似乎要在聚合内添加查询。 问题答案: 假设您使用Elasticsearch 2.x,则有可能在Elasticsearch中 具有 -semantics。我不知道2.0之前的可能性。 您可以使用新的Pipeline Aggregation Bucket Se