MySQL似乎将utf-8编码从'\ xce \ x94'更改为'\\ xce \\ x94'。如何避免这种情况?

时间:2018-12-17 11:46:11

标签: python mysql pandas

我目前正在使用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

0 个答案:

没有答案