Postgresql & Sqlalchemy 获取所有查询并排除某些列
Postgresql & Sqlalchemy fetching all query with excluding some column
我正在使用 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
}
使用 execute 我可以做类似的事情:
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?
看看:
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 –
要从映射中排除的一个列表或一组字符串列名称。
或:
按照我的操作从数据字典构建列列表,从列表中删除列并将其传递给查询
我正在使用 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
}
使用 execute 我可以做类似的事情:
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?
看看:
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 –
要从映射中排除的一个列表或一组字符串列名称。
或:
按照我的操作从数据字典构建列列表,从列表中删除列并将其传递给查询