使用python从MSSQL读取uniqueidentifier字段

使用python从MSSQL读取uniqueidentifier字段,python,sql-server,uniqueidentifier,pyodbc,Python,Sql Server,Uniqueidentifier,Pyodbc,我使用pyodbc访问我的MSSQL数据库 在我的MacOS中,当从MSSQL读取uniqueidentifier字段时,我可以打印udid字段的正确值(例如4C444660-6003-13CE-CBD5-8478B3C9C984),但是当我在Linux CentOS上运行相同的代码时,我只看到非常奇怪的字符串,如“?e?6?c”,值的类型是“缓冲区”,而不是MacOS中的“str” 您能解释一下为什么会这样,以及如何在linux上获得uidi的正确值吗?谢谢在linux中我使用str(uuid

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

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


您能解释一下为什么会这样,以及如何在linux上获得uidi的正确值吗?谢谢在linux中我使用str(uuid.uuid(bytes_le=value)).upper()来获取uniqueidentifier字段的4C444660-6003-13CE-CBD5-8478B3C9C984之类的字符串这已经有几年历史了,但最近我不得不解决同样的问题。我的解决方案是简单地将唯一标识符转换为VARCHAR,这使我的Python代码保持整洁:

SELECT CAST(unique_id_column AS VARCHAR(36)) AS my_id FROM...
然后在Python中,只需输出row.my_id