#python #sql
#python #sql
Вопрос:
Я пытаюсь выполнить SQL-запрос к базе данных Redshift в скрипте Python. Следующее приводит к ошибке «TypeError: dict не является последовательностью», и я не могу понять, почему.
test1 = """
WITH A AS
(
SELECT *,
CASE WHEN substring(text_value, 0, 4) LIKE ' ' THEN substring(substring(text_value, 0, 4), 3) ELSE substring(text_value, 0, 4) END AS cost_center_id
FROM job_custom_fields
WHERE key = 'cost_center'
)
SELECT job_id,
display_value,
CASE WHEN cost_center_id LIKE '%T%' THEN SUBSTRING(cost_center_id, 1,1)
WHEN cost_center_id LIKE '%D%' THEN SUBSTRING(cost_center_id, 1,1)
WHEN cost_center_id LIKE '%P%' THEN SUBSTRING(cost_center_id, 1,1) ELSE cost_center_id END AS cost_center_id
FROM A
"""
red_engine = create_engine('postgresql psycopg2://org_525:LZynsTS56PqPlHVhIIgUdDf1c1wuW4gD@redshift.greenhouse.io:5439/greenhouse')
test = pd.read_sql_query(test1,red_engine)
test
Любая помощь очень ценится
Ответ №1:
вам нужно экранировать его, используя %%
in python string for %
для ваших подобных операторов в sql.
%
используется для форматирования строк в python.