В настоящее время я работаю над записью csv-таблиц в базу данных sql, используя python3 и MySQLdb.
Это часть кода, который я использую:
import MySQLdb as mbd
import pandas as pd
from sqlalchemy import create_engine
import os
#establish a connection to mysql
conn = mbd.connect(host='localhost',
user = 'me',
passwd = '****',
use_unicode=True,
charset="utf8")
file_ = "./stackoverflow_example.tsv"
df = pd.read_csv(file_, sep = '\t', engine='python',
quotechar='"', decimal='.', encoding='utf-8')
df_name = os.path.basename(file_)[:-4]
df.name = df_name
engine = create_engine('mysql+mysqldb://me:****@localhost/me?charset=utf8')
df.to_sql(con = engine, name = df.name, if_exists = 'replace',
index = False)
Указанный в заголовке символ «Δ» может быть прочитан пандами и отображается как b '\ xce \ x94'(закодировано).Когда я запускаю приведенный выше код, я получаю сообщение об ошибке, в котором говорится, что «\ xce \ x94» является недопустимым символом.OperationalError: (_mysql_exceptions.OperationalError) (1366, "Неверное строковое значение: '\\ xCE \\ x9463'
Как можно избежать добавления дополнительного '\' при записи таблицы в базу данных?
Я протестировал его со следующим содержимым для файла tsv: (Извините, я не знаю, как лучше отобразить содержимое tsv)
Source_ [First_Author] Мутации года * Мутации
Raamsdonk2000 trp-1-Δ63 leu2-Δ1
Версия MySQL: mysql Ver 14.14 Distrib 5.7.24