1

AppEngine の appcfg.py を使用してデータベース全体をダンプしました。結果は、「結果」テーブルを持つ SQLITE3 データベースです。このテーブルには、キー、データ、およびインデックス フィールドの 3 つのフィールドが含まれています。データ フィールドにはエンティティ データとフィールドが含まれていますが、すべてプロトコル バッファ形式でエンコードされています。この生のプロトコル バッファ形式を配列または解析しやすいもの (できれば PHP) に抽出したいと思います。

私は Python で元のエンティティ モデル構造を持っています。私はいくつかの Protocol Buffers ライブラリを調べましたが、RAW Protocol Buffer データを抽出する方法はまだ見つかっていません。

PHPでそれを行う簡単な方法はありますか? プロトコル バッファを生成してエンコードしたくありません。最も簡単な方法を使用して生のプロトコル バッファ データをデコードしたいと考えています。

4

1 に答える 1

3

エンコードされたプロトコル バッファはプロトコル バッファのインスタンスでありEntity、Python SDK でgoogle.appengine.ext.datastore.entity_pbとして見つかります。間違いなく PHP プロトコル バッファ ライブラリがありますが、最初にエンティティ プロトコル バッファ定義のコピーを見つけ、そのライブラリを使用してリーダーを構築する必要があります。Python SDK の既存のサポートを使用し、単純な Python スクリプトを記述してプロトコル バッファから関連フィールドを抽出し、PHP で簡単にロードできる形式で出力する方がはるかに簡単です。

Python API で Protocol Buffer をデコードするには、次のようにします。

entity = entity_pb.EntityProto(contents=data)
于 2012-07-16T03:26:18.620 に答える