使用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';
更多内容请参见手册中的“服务器和客户机之间的自动字符集转换”一章。