使用python从MSSQL读取uniqueidentifier字段

时间:2011-04-04 14:44:06

标签: python sql-server uniqueidentifier pyodbc

我使用pyodbc访问我的MSSQL数据库。

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

你能解释一下为什么会这样,我怎样才能在linux上获得正确的uidi值?谢谢

2 个答案:

答案 0 :(得分:5)

在linux中,我使用str(uuid.UUID(bytes_le = value))。upper()来获取uniqueidentifier字段的4C444660-6003-13CE-CBD5-8478B3C9C984字符串

答案 1 :(得分:1)

这已经有几年了,但我最近不得不解决同样的问题。我的解决方案是简单地将唯一标识符作为VARCHAR进行CAST,这使我的Python代码保持整洁:

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

然后在Python中,只输出row.my_id。