使用Azure / Python检索unicode数据中的表时出错

时间:2012-08-22 16:38:06

标签: python django encoding azure

我使用的是Azure和python SDK。

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

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

问题在于检索数据时...每当我检索特定行时,数据检索对于无编码数据都可以正常工作:

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

任何想法都将不胜感激。

1 个答案:

答案 0 :(得分:0)

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

作为现在的解决方法,随时克隆我的仓库(记得检查dev分支)并通过pip install <path-to-repo>/src安装它。

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