使用pyodbc将数据从excel导入python中的postgres

我使用pyodbc将数据从MS-Excel导入到python(2.6) PostgreSQL

面临的问题是:

在excel源文件中有left single quotation mark(ANSI hex code : 0x91)等字符。 现在,当它使用pyodbc导入到PostgreSQL中时,它会终止并给出错误DatabaseError: invalid byte sequence for encoding "UTF8": 0x91

我试过的:decode('unicode_escape')使用了decode('unicode_escape') 。 但是,这不能完成,因为这只是删除/逃避有关人物。

备用试用:最初解码,到处都是Unicode,然后在数据库需要时进行编码。 由于手头项目的扩张,这也无法完成。

请给我build议一些方法/程序/内置函数来完成任务。

找出源文件的真实编码。 它可能是WIN1251 。 可以对其进行转码(例如使用iconv )或相应地设置PostgreSQL的client_encoding

如果你没有在pyodbc设置(我不知道),你总是可以发出一个普通的SQL命令:

 SET CLIENT_ENCODING TO 'WIN1251'; 

更多内容请参见手册中的“服务器和客户机之间的自动字符集转换”一章。