2011-04-04 27 views
-1

我使用pyodbc来访问我的MSSQL数据库。使用python从MSSQL读取uniqueidentifier字段

当从MSSQL读取uniqueidentifier字段时,在我的MacOS中,我可以打印正确的udid字段值(例如4C444660-6003-13CE-CBD5-8478B3C9C984),但是当我在Linux CentOS上运行相同的代码时,看到非常奇怪的字符串,如“??? E ?? 6 ?????? c”,值的类型是“缓冲区”,而不是像MacOS中的“str”。

你能解释我为什么是这样吗?我如何才能在linux上得到正确的uidi值?由于

回答

5

在linux下我使用STR(uuid.UUID(bytes_le =值))。上()来获取字符串如唯一标识符字段的4C444660-6003-13CE-CBD5-8478B3C9C984

1

这是几年老,但最近我不得不解决这个相同的问题。我的解决办法是简单地把唯一标识符为VARCHAR,它一直在我的Python代码漂亮和整洁:

SELECT CAST(unique_id_column AS VARCHAR(36)) AS my_id FROM... 

然后用Python,只需输出row.my_id。