Я использую pandas, чтобы сохранить некоторые данные в MySQL базе данных. И один столбец данных - это экранированные JSON строки. Но я обнаружил, что сохраненные данные в БД автоматически не экранируются (но я хочу сохранить escape).
Например, если у меня есть таблица с 2 столбцами id(INT11)
и value(JSON)
в БД и фрейм данных df = pd.DataFrame({'id':[1, 2], 'value':['"\\u5f53\\u65e5"', '"\\u524d\\u65e5"']})
Если я вывожу фрейм данных как df.to_sql(table, con, index=False)
, строка JSON будет автоматически удалена, как показано на следующем рисунке. pandas или sqlalchemy сделали это намеренно? Как я могу предотвратить удаление моих данных?
![enter image description here](https://i.stack.imgur.com/uA4id.png)
Также я обнаружил, что если я изменю тип столбца value
с JSON
на VARCHAR
. Эскейп не будет. Так может быть sqlalchemy сделал unescape и что мне нужно, чтобы отключить это? Как я могу это сделать?
--- Информация о версии ---
ОС: Ubuntu 18.04
MySQL Сервер: 5.7
Python: 3.7.7
Pandas: 1.0.3
sqlalchemy: 1.3.15
mysqlclient: 1.4.6