我在Python中被UnicodeEncodeError
卡住了一段时间。
这是我正在做的事情:
int
,string
,datetime
等。SQLAlchemy
创建连接。df.to_sql
命令并收到以下错误UnicodeEncodeError:' latin-1'编解码器无法对字符u' \ u2013'进行编码。 位置8:序数不在范围内(256)
我尝试过这样做,但似乎没有效果。
engine = create_engine('mysql+pymysql://user:pwd@host:%s/db?charset=utf8' % server.local_bind_port)
我已阅读here我可以使用u.encode('latin-1', 'replace')
。但是,我是否需要执行该操作并遍历每个String
列并对其进行编码?或者我还能做些什么呢?
非常感谢任何帮助!
答案 0 :(得分:0)
这是我提出的解决方案。
我创建了一个编码数据中不同字符的函数。
def custom_encoder(x):
#Check if the value is Unicode
if type(x)==type(u''):
return x.encode('utf8','ignore')
else:
return x
我循环遍历所有列并编码所有值。在此之后,MySQL允许写入数据。