无法将 'json_extract_path_text' (Redshift) 与 sqlalchemy 一起使用?

Unable to use the 'json_extract_path_text' (Redshift) with sqlalchemy?

我需要 运行 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' 是红移 table 中包含 json 字符串的列。

我知道我的查询有效,因为当我通过 SQL Workbench 直接查询我们的数据库时它 运行s。当我尝试在我的笔记本中 运行 它时,我收到错误消息:

'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'。

关于可能导致问题的原因有什么想法吗?谢谢你的帮助。

语法错误。 { 没有必要。使用 SQL workbench 时不会引发错误,但当 运行 到 python 时会引发错误。

SELECT deviceid, json_extract_path_text(extra_ctx, 'skip_login')
FROM table
LIMIT 10

工作正常。谢谢,伊利亚