2

我正在使用 Azure 和 python SDK。

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

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

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

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 的引用

任何想法将不胜感激。

4

1 回答 1

0

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

作为目前的解决方法,请随意克隆我的 repo(记得签出 dev 分支)并通过pip install <path-to-repo>/src.

警告:我还没有非常彻底地测试我的修复,所以你可能想等待微软的人来看看它。

于 2012-08-23T16:10:09.533 回答