DataScience/SQL
pymysql 오류 valueerror: unsupported format character
사족보행 개발자
2024. 9. 27. 20:28
728x90
오류 설명
pymysql을 사용하다 보면, valueerror가 발생한다.
valueerror: unsupported format character 'Y' (0x59)
본 문제는 WHERE 절에서 python의 string formatting에 의해 발생하는데,
아래와 같은 코드를 쓸 때 문제가 발생한다.
where = input()
sql = f"SELECT * FROM TABLE WHERE {where}"
이 때 where 절에 따옴표(')나 퍼센트(%)가 들어가기에 발생한다.
( WHERE 절에서 LIKE 구문을 사용하는 경우)
해결방법
따라서 이를 해결하기 위해선 아래와 같이 수정해주면 된다.
%를 %% 두개로 수정하고, 따옴표를 통일하여 sql 구문의 스트링 따옴표랑 다르게 해주면 된다.
(' 일 경우, "로, "일 경우 '로)
where = input().replace("\"", "\'").replace('%', '%%')
sql = f"SELECT * FROM table WHERE {where}"
728x90