gpt4 book ai didi

python - 如何从查询中捕获值并将其用作另一个查询中的值

转载 作者:太空宇宙 更新时间:2023-11-03 19:58:24 24 4
gpt4 key购买 nike

我有一个在 Python 中运行的 Postgres(redshift) 查询,它输出一个字段及其值。我想运行另一个使用该查询中的值的查询。但是,当我运行以下代码时,它给了我一个错误:

taskinstance.py:1051} ERROR - no results to fetch

这是我的代码:

def get_etl_recordd():
pg_hook = PostgresHook(postgre_conn_id="postgres_default", schema='db1')
connection = pg_hook.get_conn()
nt_cur = connection.cursor(cursor_factory=psycopg2.extras.NamedTupleCursor)
atest_update_query = "select max(updated_at) from schema1.table1 group by updated_at order by updated_at asc limit 1;"
nt_cur.execute(atest_update_query)
result = nt_cur.fetchone()
max_updated_at = result.max

cursor2= connection.cursor()
latest_update_query1 = "select * from schema1.table1 where updated_at <= '{}'; commit;".format(max_updated_at)
cursor2.execute(latest_update_query1)

d=cursor2.fetchone()
connection.close()

知道为什么会发生这种情况吗? atest_updated_query 的值是一个时间戳,而 latest_updated_query1 实际上有一个输出。任何帮助将不胜感激。

这是我在 Python/Airflow 中运行的 Postgres(Redshift) 查询。

最佳答案

我无法发现您的代码中的问题,但您可以尝试使用 PostgresHookget_first 方法。它应该完全符合您想要实现的目标,并且它肯定适用于我们的 Airflow/Redshift 设置。

sql = "SELECT 1"

hook = PostgresHook(postgres_conn_id=self.postgres_conn_id, schema=self.database)

first_col_of_first_row = self.hook.get_first(sql)[0]

关于python - 如何从查询中捕获值并将其用作另一个查询中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59413658/

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