【问题标题】:Read uniqueidentifier field from MSSQL using python使用 python 从 MSSQL 读取 uniqueidentifier 字段
【发布时间】:2011-04-04 14:44:06
【问题描述】:
我使用 pyodbc 访问我的 MSSQL 数据库。
从 MSSQL 读取 uniqueidentifier 字段时,在我的 MacOS 中,我可以打印 udid 字段的正确值(例如 4C444660-6003-13CE-CBD5-8478B3C9C984),但是当我在 Linux CentOS 上运行相同的代码时,我只看到非常奇怪的字符串,比如“???E??6??????c”,值的类型是“buffer”,而不是MacOS中的“str”。
你能解释一下为什么会这样吗?我怎样才能在 linux 上获得正确的 uidi 值?谢谢
【问题讨论】:
标签:
python
sql-server
uniqueidentifier
pyodbc
【解决方案1】:
在 linux 中,我使用 str(uuid.UUID(bytes_le=value)).upper() 来获取 uniqueidentifier 字段的 4C444660-6003-13CE-CBD5-8478B3C9C984 之类的字符串
【解决方案2】:
这已经有几年了,但我最近不得不解决同样的问题。我的解决方案是将唯一标识符简单地转换为 VARCHAR,这样可以使我的 Python 代码保持整洁:
SELECT CAST(unique_id_column AS VARCHAR(36)) AS my_id FROM...
然后在 Python 中,只需输出 row.my_id。