gpt4 book ai didi

python - 你如何在 sqlalchemy 中连接两个 KeyedTuple 对象?

转载 作者:太空宇宙 更新时间:2023-11-04 06:01:48 24 4
gpt4 key购买 nike

我有以下两个问题

res=session.query(t_marketing_mailing_stats_tbl).filter(
t_marketing_mailing_stats_tbl.c.mailing_id==mid)

res_t=session.query(t_marketing_time_stat_tbl).filter(
t_marketing_time_stat_tbl.c.mailing_id==mid)

try:
return res.one() + res_t.one()
except NoResultFound as e:
return None

resres_t 都是 sqlalchemy.util._collections.KeyedTuple 类型,支持加法,然而,结果对象是一个简单的元组,没有键。

我想要一个综合结果,所以我做了以下事情:

rv = {}
res=session.query(t_marketing_mailing_stats_tbl).filter(
t_marketing_mailing_stats_tbl.c.mailing_id==mid)

res_t=session.query(t_marketing_time_stat_tbl).filter(
t_marketing_time_stat_tbl.c.mailing_id==mid)

try:
res =res.one()
res_t = res_t.one()
for k in res.keys():
rv[k] = getattr(res, k)
for k in res_t.keys():
rv[k] = getattr(res_t, k)
except NoResultFound as e:
return None

虽然这行得通,但我怀疑有一种内置方法,或者使用 sqlalchemy 实现此目的的更好方法。我很乐意知道怎么做。

最佳答案

你可以构造新的KeyedTuple立即从如下两个查询结果中获取:

>>> from sqlalchemy.util import KeyedTuple
>>> res = KeyedTuple(a + b, a.keys() + b.keys())

关于python - 你如何在 sqlalchemy 中连接两个 KeyedTuple 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24492683/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com