【发布时间】:2017-12-13 13:55:57
【问题描述】:
我正在使用 ODBC(Python ODBC 模块)连接到 MS Access。有一部分代码将一些值放入 DB。看起来与此类似:
for item in changes:
format_str = """INSERT INTO changes (short_description) VALUES ('{short_description}');"""
sql_command = format_str.format(short_description =item.short_description)
cursor.execute(sql_command)
cursor.commit()
问题是它返回语法错误:
pypyodbc.ProgrammingError: ('42000', "[42000] [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression
我发现这是因为对于一个案例,我有这样的 short_description:
服务请求状态不会更改为“OPEN”,一旦发送 到另一个组
问题在于 OPEN 之后的“'”。
在这里为您提供完整的图片。实际上我看到的字符串是这样的:
服务请求状态不会更改为“OPEN”,一旦发送 到另一个组
我从提供数据的应用程序的 API 中获得带有“\”的字符串。它添加“\”来转义字符串,但不是在所有地方。
问题是 - 解决它的最简单方法是什么? 理论上我可以替换\删除不需要的标志,但如果我想保持原样呢?
对于任何其他情况,一切正常。
【问题讨论】: