我使用pyodbc访问我的MSSQL数据库。
从MSSQL读取uniqueidentifier字段时,在我的MacOS中,我可以打印正确的udid字段值(例如4C444660-6003-13CE-CBD5-8478B3C9C984),但是当我在Linux CentOS上运行相同的代码时,我只看到非常奇怪的字符串,如“??? E ?? 6 ?????? c”,值的类型是“缓冲区”,而不是MacOS中的“str”。
你能解释一下为什么会这样,我怎样才能在linux上获得正确的uidi值?谢谢
答案 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。