【发布时间】:2021-02-04 14:34:33
【问题描述】:
我有以下数据元素
"In less than two minutes you can provide feedback to help us build the best customer service in healthcare.",
"Based on your chat, how easy is your health plan to do business with?", "☹️", "????", "????", "???? ", "????", "The survey has expired. Thank you for your time."
它会抛出错误
Unclosed quotation mark after the character string ''.
在 sql server 中,我将记录集设置为 nvarchar 来处理表情符号。我是否还需要将 N 附加到它?这是我的代码
def __insert_records(self, rows, target_fields):
try:
mssql_connection = BaseHook.get_connection(self.mssql_conn_id)
connection = pyodbc.connect(DRIVER='FreeTDS',host=mssql_connection.host,DATABASE=mssql_connection.schema,user=mssql_connection.login,password=mssql_connection.password,port=mssql_connection.port,driver='/usr/lib64/etc')
cursor = connection.cursor()
for i, row in enumerate(rows, 1):
record = []
for cell in row:
record.append(self._serialize_cell(cell))
record_dictionary = self.__get_record_dictionary(record, target_fields)
cursor.execute(self.__generate_insert_sql_statement(record_dictionary))
connection.commit()
cursor.close()
connection.close()
except pyodbc.ProgrammingError as programmingError:
sqlstate = programmingError.args[0]
if sqlstate = '42000':
print(programmingError.args[0])
【问题讨论】:
-
你还是遇到了 SQL 注入问题。转换为使用参数而不是动态生成插入,您的问题也会消失
-
我不写 Python,但 Google 是你的朋友。以stackoverflow.com/questions/1633332/… 为例
-
Python 支持参数化语句。
标签: python sql-server pyodbc