1

我已经使用 AppEngine 中的 appcfg.py 转储了我的整个数据库。结果是一个带有“结果”表的 SQLITE3 数据库。该表包含三个字段,一个键、一个数据和一个索引字段。数据字段包含实体数据和字段,但它都以协议缓冲区格式编码。我想将此原始协议缓冲区格式提取到一个数组或易于解析的东西中(最好在 PHP 中)。

我有 Python 中的原始实体模型结构。我已经检查了几个协议缓冲区库,但到目前为止我还没有找到一种方法来提取原始协议缓冲区数据。

在 PHP 中是否有任何简单的方法可以做到这一点?我不想生成和编码协议缓冲区;我想使用最简单/最简单的方式解码原始协议缓冲区数据。

4

1 回答 1

3

编码的协议缓冲区是协议缓冲区的一个实例,Entity在 Python SDK 中作为google.appengine.ext.datastore.entity_pb 找到。毫无疑问,有 PHP 协议缓冲区库,但您首先需要找到实体协议缓冲区定义的副本,并使用该库为它构造一个阅读器。使用 Python SDK 中的现有支持可能要简单得多,并编写一个简单的 Python 脚本来从协议缓冲区中提取相关字段并以您可以在 PHP 中轻松加载的格式输出它们。

要在 Python API 中解码协议缓冲区,请执行以下操作:

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