【问题标题】:Postgresql & Sqlalchemy fetching all query with excluding some columnPostgresql & Sqlalchemy 获取所有查询并排除某些列
【发布时间】:2020-10-27 17:38:19
【问题描述】:

我正在使用 sqlalchemy 从我的 postgresql 数据库中获取数据:

elif domain:
    query = universities.select().where(universities.c.domains == domain)
    return await database.fetch_one(query)
    
    

代码看起来像这样,不知何故它包含"id"

{
  "id": 5788,
  "name": "American University of Middle East",
  "alpha_two_code": "KW",
  "country": "Kuwait",
  "web_pages": "http://www.aum.edu.kw/",
  "domains": "aum.edu.kw",
  "state_province": null
}

通过执行,我可以执行以下操作:

SELECT name, alpha_two_code, country, web_pages, domains, state_province
FROM universities

等等……

但是我如何使用 sqlalchemy 的查询来实现这一点,我尝试了类似的方法

elif domain:
    query = universities.select().where(universities.c.domains == domain)
    return await database.fetch_one(query).prefix_with(universities.column_name != "id")

我知道它不会起作用,但有没有办法获取除某些值之外的所有数据?在我的情况下,除了 id?

【问题讨论】:

    标签: python postgresql sqlalchemy psycopg2


    【解决方案1】:

    看看:

    https://docs.sqlalchemy.org/en/13/core/tutorial.html#coretutorial-selecting

    选择特定的列

    如果我们想更仔细地控制放在 select 的 COLUMNS 子句中的列,我们会从 Table 中引用单个 Column 对象。这些可作为 Table 对象的 c 属性的命名属性使用:

    
    from sqlalchemy.sql import select
    >>> s = select([users.c.name, users.c.fullname])
    sql
    >>> result = conn.execute(s)
    >>> for row in result:
    ...     print(row)
    (u'jack', u'Jack Jones')
    (u'wendy', u'Wendy Williams')
    

    更新。其他选项是使用exclude:

    exclude_properties –

    要从映射中排除的字符串列名列表或集合。

    或者:

    做我所做的,即从数据字典中构建一个列列表,从列表中删除列并将其传递给查询

    【讨论】:

    • 您好阿德里安,首先感谢您的回复,但它没有回答我的问题我要问的事情恰恰相反,如何不选择一个特殊的专栏,因为写下所有专栏都没有成效,就像我在问题中提到的那样,我可以通过SELECT bla,bla,bla FROM bla WHERE bla = %s 实现这一点,它会做你提到的完全相同的事情。但可能有一种更简单的方法可以排除特定列。
    • 这就是exclude。否则我要做的是从数据字典中构建一个列列表,从列表中删除列并将其传递给查询。
    • 'exclude_properties' : ['id'] 添加到我的表中已修复,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-12
    • 1970-01-01
    • 2019-06-29
    相关资源
    最近更新 更多