我目前正在使用python3和MySQLdb将csv-tables写入sql数据库。
这是我使用的代码的一部分:
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)
在titel中表示的符号“Δ”可以被熊猫读取,并显示为b'\ xce \ x94'(已编码)。 当我运行上面的代码时,我收到一条错误消息,指出“ \ xce \ x94”是无效符号。 OperationalError:(_mysql_exceptions.OperationalError)(1366,“不正确的字符串值:'\\ xCE \\ x9463'
如何避免在将表写入数据库时添加多余的'\'?
我使用tsv文件的以下内容对其进行了测试: (对不起,我不知道如何更好地显示tsv内容)
Source_ [First_Author] Year Mutations突变
Raamsdonk 2000trp-1-Δ63leu2-Δ1
MySQL版本:mysql Ver 14.14 Distrib 5.7.24