使用Python执行记事本中SQL查询时遇Unicode转义错误求助
问题
将SQL查询存储在记事本文件中,通过Python脚本执行时出现错误,代码如下:
cursor = connection.cursor() with open('C:\Python_Script_Test\SQL_Query.txt','r') as inserts: query = inserts.read() cursor.execute(query)
实际触发的错误:
with open('C:\Python_Script_Test\SQL_Query.txt','r') as inserts:
syntax error: (unicode error) 'unicodeescape' codec cant decode bytes in position 2-3: truncated \UXXXXXXXX escape
已尝试替换单双引号但无效,查询为多行,寻求技术解决。
解决方法
这是Python中路径转义字符引发的问题:\P被识别为Unicode转义序列的开头,但后续字符不完整导致解码失败,三种修复方式任选其一即可:
使用原始字符串:在路径字符串前添加
r,让Python跳过反斜杠的转义处理:with open(r'C:\Python_Script_Test\SQL_Query.txt','r') as inserts:使用双反斜杠手动转义:用两个反斜杠代替单个反斜杠,避免被解析为转义符:
with open('C:\\Python_Script_Test\\SQL_Query.txt','r') as inserts:使用正斜杠作为路径分隔符:Python支持跨平台的正斜杠路径写法,无需转义:
with open('C:/Python_Script_Test/SQL_Query.txt','r') as inserts:
另外,多行SQL查询读取后直接通过cursor.execute()执行即可,Python和多数数据库驱动都支持处理多行SQL语句,无需额外处理换行。
内容的提问来源于stack exchange,提问作者Neha M
相关产品推荐
相关产品推荐

