首页 > 解决方案 > Python 脚本中 X LIKE '%T%' 导致“TypeError: dict is not a sequence”时的 SQL 案例

问题描述

我正在尝试在 Python 脚本中对 Redshift DB 运行 SQL 查询。以下导致错误“TypeError:dict is not a sequence”,我不知道为什么。

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

非常感谢任何帮助

标签: pythonsql

解决方案


您需要%%在 python%中使用,因为您在类似的语句中使用。 %在python中用于字符串格式化


推荐阅读