일단써

pandas 특수문자가 들어간 query가 있을 때

코타쿠 2022. 2. 18. 13:16
select format('%03d', 8);

과 같은 쿼리가 있으면

df = pandas.read_sql(query, engine)

했을 때, 오류가 난다.

TypeError: %d format: a number is required, not dict

% 문자가 escaping이 안되고 인자로 받아져서 일어나는 문제인 것 같다.
이럴 땐 먼저 sqlalchemytext를 사용해주면 된다.

from sqlalchemy import text
...
df = pandas.read_sql(text(query), engine)

그럼 잘 된다.