我需要运行 SQL (Redshift) 查询,我目前正在使用 jupyter / ipython notebook。我有 sqlalchemy-redshift。
from sqlalchemy import create_engine, text
engine_string = databasepwrd.redshiftconnection()
engine = create_engine(engine_string)
from pandas.io import sql
def run_query(sequalese):
'''returns a dataframe given a string SQL query'''
sql_query = text(sequalese)
df = sql.read_sql(sql_query,engine )
return df
run_query("""
SELECT deviceid, json_extract_path_text({extra_ctx, 'skip_login'})
FROM table
LIMIT 10""")
其中 'extra_ctx' 是 redshift 表中包含 json 字符串的列。
我知道我的查询有效,因为它在我直接通过 SQL Workbench 查询我们的数据库时运行。当我尝试在笔记本中运行它时,我收到以下错误:
'ProgrammingError: (psycopg2.ProgrammingError) syntax error at or near "extra_ctx"
LINE 1: SELECT user, json_extract_path_text({extra_ctx, 'skip_lo...'
<-- 还有一点 ^ 指向 extra_ctx 上的“e”。
关于可能导致问题的任何想法?谢谢你的帮助。