如何在 Python 中的 Bigquery 的 SQL 查询中使用变量?

问题描述 投票:0回答:1

我正在用 python 编写一个函数,该函数应该为 BigQuery 创建查询以提取某些数据。该函数的目标是创建一个传递用户 ID 的查询。该查询返回与该userid对应的所有表的数据。但是,我的问题是我不知道如何使 userid 变量?如果我对一个特定的用户 ID 进行硬编码,我的代码就可以工作:

def user_id_data():
  query = """
  SELECT *
  FROM `name_of_the_place_in_BigQUery`
  WHERE userId = "1a2b3c4d"
return query_bigquery(query)

此代码有效,它将查询传递给函数 query_bigquery,然后该函数将查询传递给 bigquery 服务器并输出与用户 ID 1a2b3c4d 关联的所有数据。 现在我想做的是能够更改查询查找的用户 ID,而不必每次都对其进行硬编码。我对此表示支持:

def user_id_data(passed_id):
  query = """
  SELECT *
  FROM `name_of_the_place_in_BigQUery`
  WHERE userId = passed_id
return query_bigquery(query)

print(user_id_data("1a2b3c4d"))

但是,这段代码不起作用。我知道它不起作用,因为实际传递的用户ID是passed_id,而不是它代表的值1a2b3c4d(我知道为什么的解释不是很好,但我不是在寻找对此的解释)。我不知道如何解决这个问题?我可以在SQL语句中引入变量吗?感谢您的帮助!!

python sql variables google-bigquery
1个回答
1
投票

我想通了:我使用了f“””,然后将变量放入'{passed}'中。我仍然不太明白f,但它正在工作!

© www.soinside.com 2019 - 2024. All rights reserved.