Skip to main content
 首页 » 编程设计

python之使用 Azure/Python 在 unicode 数据中检索表时出错

2025年05月04日8webabcd

我正在使用 Azure 和 python SDK。

我正在使用 Azure 的表服务 API 进行数据库交互。

我创建了一个包含 unicode 数据的表(例如希伯来语)。在 unicode 中创建表和设置数据似乎工作正常。我能够使用 Azure 存储资源管理器查看数据库中的数据,并且数据是正确的。

问题是在检索数据时。每当我检索特定行时,数据检索对于 unicoded 数据都可以正常工作:

table_service.get_entity("some_table", "partition_key", "row_key") 

但是,当尝试使用过滤器获取大量记录时,对于其中包含非 ascii 字符的任何行都会抛出编码异常:

tasks = table_service.query_entities('some_table', "PartitionKey eq 'partition_key'") 

这是 azure python SDK 上的错误吗?有没有办法预先设置编码以使其不会崩溃? (azure 不允许访问 sys.setdefaultencoding 并且在 settings.py 上使用 DEFAULT_CHARSET 也不起作用)

我正在使用 https://www.windowsazure.com/en-us/develop/python/how-to-guides/table-service/作为表服务 API 的引用

任何想法将不胜感激。

请您参考如下方法:

对我来说,这看起来像是 Python 库中的错误。我快速修复并在 GitHub 上提交了拉取请求:https://github.com/WindowsAzure/azure-sdk-for-python/pull/59 .

作为目前的解决方法,请随意克隆我的存储库(记得 checkout 开发分支)并通过 pip install <path-to-repo>/src 安装它.

警告:我还没有非常彻底地测试我的修复程序,因此您可能需要等待 Microsoft 人员来查看它。