Python拼接SQL查询字符串报unrecognized token错误如何解决
错误原因
- SQL拼接缺少空格:
"SELECT"和后续查询内容拼接时没有加空格,最终生成的语句为SELECT* FROM netflix...,不符合SQL语法规范。 - LIKE条件的字符串未闭合:代码中
LIKE '%Horror%只写了开头的单引号和左侧百分号,缺少右侧百分号和闭合单引号,导致SQL解析器无法识别不完整的字符串令牌,抛出对应错误。
修复代码
你可以直接写完整SQL语句,避免拆分拼接带来的语法错误:
from pandasql import pysqldf sql_query = "SELECT * FROM netflix WHERE release_year = 2020 AND type = 'Movie' AND listed_in LIKE '%Horror%'" print(pysqldf(sql_query))
如果需要动态拼接查询条件,推荐使用参数化查询写法,避免字符串转义问题和SQL注入风险:
from pandasql import pysqldf # 动态查询参数 target_year = 2020 content_type = "Movie" category_keyword = "Horror" sql_query = "SELECT * FROM netflix WHERE release_year = ? AND type = ? AND listed_in LIKE ?" # 参数按顺序传入,模糊查询通配符直接加在参数值中 result = pysqldf(sql_query, params=(target_year, content_type, f"%{category_keyword}%")) print(result)
内容的提问来源于stack exchange,提问作者Paul Smith
相关产品推荐
相关产品推荐

