我使用的是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的引用
任何想法都将不胜感激。
答案 0 :(得分:0)
对我来说,这看起来像Python库中的一个错误。我快速修复并在GitHub上提交了拉取请求:https://github.com/WindowsAzure/azure-sdk-for-python/pull/59。
作为现在的解决方法,随时克隆我的仓库(记得检查dev分支)并通过pip install <path-to-repo>/src
安装它。
警告:我没有彻底测试过我的修复程序,因此您可能需要等待Microsoft人员查看它。