直接下sql 指令給 mysql:
insert into t(c) VALUES (‘{“City”: “Galle”, “Description”: “Best damn city in the world”}’)
存入 database 裡的值合乎預期。但透過 python + mysql.connector 執行:
cmd4 = '{"City": "Galle", "Description": "Best damn city in the world"}' cursor=db.cursor() sql = "insert into t(c) Values(%s);" cursor.execute(sql, (cmd4,))
結果出乎預期,backsplash 被跳脫!
看了一下官方的source code:
哦買尬,完全是 hard code 沒有設定可以改。backsplash 不跳脫…
較快速的解法有 2:
- 1:修改第3方package source code。
- 2:允許 mysql backsplash 可以跳脫。
相關文章:
Mysql 的 NO_BACKSLASH_ESCAPES
https://stackoverflow.max-everyday.com/2017/08/mysql-no_backslash_escapes/