使用Python读取MSSQL中的uniqueidentifier字段

0 投票
2 回答
2517 浏览
提问于 2025-04-16 15:03

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

在我的MacOS上,当我读取MSSQL中的uniqueidentifier字段时,可以正确打印出udid字段的值(例如4C444660-6003-13CE-CBD5-8478B3C9C984)。但是当我在Linux CentOS上运行相同的代码时,我看到的却是一些奇怪的字符串,比如"???E??6??????c",而且这个值的类型是"buffer",而不是像在MacOS上那样是"str"。

你能告诉我这是为什么吗?我该如何在Linux上获取正确的uidi值呢?谢谢。

2 个回答

1

这段话虽然有点年头了,但我最近也遇到了同样的问题。我的解决办法很简单,就是把唯一标识符转换成一个字符串(VARCHAR),这样我的Python代码就显得整洁多了:

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

然后在Python中,只需要输出row.my_id就可以了。

5

在Linux系统中,我使用str(uuid.UUID(bytes_le=value)).upper()这个方法来获取一个像4C444660-6003-13CE-CBD5-8478B3C9C984这样的字符串,这个字符串是用来表示唯一标识符的。

撰写回答