繁体   English   中英

使用 python 查询到 BigQuery(Python 字符串格式)时出现问题

[英]Problems querying with python to BigQuery (Python String Format)

我正在尝试查询 BigQuery 以修改一行的所有值(在 python 中)。 当我使用一个简单的字符串来查询时,我没有问题。 然而,当我引入字符串格式时,查询不起作用。 如下所示,我提出了相同的查询,但减少了我正在修改的列数。 我已经通过定义客户端等连接到 BigQuery(并且工作正常)。

我试过:

"UPDATE `riscos-dev.survey_test.data-test-bdrn` SET informaci_meteorol_gica = {inf}, risc = {ri} WHERE objectid = {obj_id}".format(inf = df.informaci_meteorol_gica[index], ri = df.risc[index], obj_id = df.objectid[index])

以格式指定输入值: df.informaci_meteorol_gica[index] = 'Neu' ,也是df.risc[index] and df.objectid[index] = 3的字符串

我收到以下错误消息:

BadRequest: 400 Braced constructors are not supported at [1:77]

我建议您使用Pythonf string格式化的另一种方法,而不是使用stringformat方法:

def build_query():
  inf = "'test_inf'"
  ri = "'test_ri'"
  obj_id = "'test_obj_id'"

  return f"UPDATE `riscos-dev.survey_test.data-test-bdrn` SET informaci_meteorol_gica = {inf}, risc = {ri} WHERE objectid = {obj_id}"

if __name__ == '__main__':
  query = build_query()

  print(query)

结果是:

UPDATE `riscos-dev.survey_test.data-test-bdrn` SET informaci_meteorol_gica = 'test_inf', risc = 'test_ri' WHERE objectid = 'test_obj_id'

我在我的示例中模拟了查询参数:

inf = "'test_inf'"
ri = "'test_ri'"
obj_id = "'test_obj_id'"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM