2

Azure と python SDK を使用しています。

DB とのやり取りに Azure のテーブル サービス API を使用しています。

ユニコード (ヘブライ語など) のデータを含むテーブルを作成しました。テーブルの作成とユニコードでのデータの設定はうまくいくようです。Azure Storage Explorer を使用してデータベース内のデータを表示でき、データは正しいです。

問題は、データを取得するときです.特定の行を取得するたびに、データ取得はユニコードデータに対して正常に機能します:

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 を使用しても機能しません)

テーブル サービス API への参照としてhttps://www.windowsazure.com/en-us/develop/python/how-to-guides/table-service/を使用しています

どんなアイデアでも大歓迎です。

4

1 に答える 1

0

これは、Python ライブラリのバグのように見えます。簡単な修正を作成し、GitHub にプル リクエストを送信しました: https://github.com/WindowsAzure/azure-sdk-for-python/pull/59

当面の回避策として、私のレポを自由に複製して (dev ブランチをチェックアウトすることを忘れないでください) pip install <path-to-repo>/src、.

警告: 修正プログラムを十分にテストしていないため、Microsoft の担当者が確認するまで待つことをお勧めします。

于 2012-08-23T16:10:09.533 に答える