Pandas unescape ascii-escaped JSON данные при сохранении данных в столбце JSON в MySQL? - PullRequest
0 голосов
/ 08 апреля 2020

Я использую 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

Также я обнаружил, что если я изменю тип столбца 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...