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

时间:2011-11-23 07:33:22

标签: python excel postgresql unicode pyodbc

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

面临的问题是:

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

我尝试了什么:我暂时使用了decode('unicode_escape')。但是,这不能做,因为这只是删除/逃避有关的角色。

备用试用版:最初解码,到处都是Unicode,然后在需要时从数据库中进行编码。由于手头的项目范围扩大,这也无法实现。

请建议我完成任务的一些方法/程序/内置功能。<​​/ p>

1 个答案:

答案 0 :(得分:1)

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

如果您在pyodbc(我不知道)中没有设置,您始终可以发出纯SQL命令:

SET CLIENT_ENCODING TO 'WIN1251';

本手册第"Automatic Character Set Conversion Between Server and Client"章中的更多内容。