0

SQL (Redshift) クエリを実行する必要があり、現在、jupyter / ipython ノートブックを使用しています。私は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」は、json 文字列を含む redshift テーブルの列です。

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' を指しています。

問題の原因について何か考えはありますか? 助けてくれてありがとう。

4

1 に答える 1

0

構文エラー。{ 必要ありません。SQL ワークベンチではエラーは発生しませんが、Python を実行すると発生します。

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

うまくいきました。ありがとう、イリヤ

于 2016-06-29T18:28:43.377 に答える