【发布时间】:2019-04-03 18:46:29
【问题描述】:
我正在尝试使用 pandas.read_gbq 根据列表中存在的列 C 的值从我的 Bigquery 表中选择列 A 和 B。但是,当我使用format 在查询字符串中插入列表时,列表的内容会被[] 方括号括起来。这打破了我的查询。
我在查询字符串上使用了replace 来手动删除方括号。
values_in_list = ['a', 'b', 'c']
query = """
SELECT
column_A,
column_B
FROM
my_table
WHERE
column_C IN ({})
""".format(values_in_list).replace('[', '').replace(']', '')
query_df = pandas.read_gbq(query, project_id='some-project', dialect='standard')
这样就完成了工作。我想知道是否有比暴力破解更优雅的解决方案。
【问题讨论】:
-
最好通过查询参数传递
values_in_list,看这个example。 -
非常感谢您的回复。我按照您提供的链接进行操作。当我使用
'type': 'STRING'paramterType时,此查询仅返回列表的第一个元素之类的值。当我尝试'type': 'ARRAY'时,它返回了一个基于GenericGBQException的BadRequest。
标签: python pandas google-bigquery