首页 > 解决方案 > 如何修复:Python 代码中的 BigQuery 查询

问题描述

我尝试在 BigQuery 查询中使用变量。语法错误。可能是什么问题呢?

我尝试了带有 ''' 的字符串块,但结果相同。


QUERY = ('WITH activity_data AS ('
          'SELECT user_pseudo_id, event_timestamp, event_name,' 
          'UNIX_MICROS(TIMESTAMP("'+ cohort_date_str'\", "Europe/Budapest")) AS start_day,'
          '3600*1000*1000*24*1 AS one_interval_micros'
          'FROM `events_*`'
          "WHERE _table_suffix BETWEEN \'"+ table_start_str "\' AND \'"+ table_end_str1 "\'"  
          'AND event_name IN ("z_Added","y_Added","x_Added")'
          'AND user_pseudo_id IN ('
                                    'SELECT user_pseudo_id'
                                    'FROM `events_*`' 
                                    "WHERE _table_suffix BETWEEN \'"+ table_start_str"\' AND \'"+ table_end_str2"\'"
                                    'AND event_name = "first_open"'
                                    'AND event_timestamp BETWEEN UNIX_MICROS(TIMESTAMP("'+ cohort_date_str'", "Europe/Budapest"))'
                                    'AND UNIX_MICROS(TIMESTAMP("'+ cohort_date_end_str'", "Europe/Budapest"))'

 """      
                                 )
                                )
...
 """

第 18 行中的语法错误:Colab 中的小箭头指向行尾的破折号。

LINE 18:
 'UNIX_MICROS(TIMESTAMP("'+ cohort_date_str'\", "Europe/Budapest")) AS start_day,'

关于错误的屏幕截图: https ://image.prntscr.com/image/rpuNg96iRom9-n7qaTvILA.png

标签: pythongoogle-bigquerypython-bigquery

解决方案


之后你失踪++ cohort_date_str。对于+ table_start_str. 等等


推荐阅读