【发布时间】:2021-10-14 23:59:10
【问题描述】:
我有 MySQL (5.6.10) 表,其中包含两列 A: varchar(255), B: text
当我运行以下命令时:
from mysql import connector as sqlserver
Database = sqlserver.connect(host=host, user=user, passwd=passwd, db=db)
Database.autocommit = True
Cursor = Database.cursor()
Cursor.execute('INSERT INTO Table (A, B) VALUES (%s, %s)',
tuple(['This_is_a_test', '\n\nThis is a test\n\n']))
引发异常:
Illegal unquoted character ((CTRL-CHAR, code 10)): has to be escaped using backslash
如果我这样做:
import json
Cursor.execute('INSERT INTO Table (A, B) VALUES (%s, %s)',
tuple(['This_is_a_test', json.dumps('\n\nThis is a test\n\n')]))
那么就成功了,但是表中的值为:
'"\n\nThis is a test\n\n"'
代替:
'
This is a test
'
我可以手动输入值以获得正确的格式,但是你应该如何将字符串作为变量传递并让它保持正确的格式?
【问题讨论】:
标签: json python-3.x mysql-connector