我更进一步。我正在使用python中使用nbd.Key()创建的密钥在Google Apps脚本中获得关键代表。
当我解码这个密钥时,我得到一组不完整的数据:
agxzfm92ZXItc2lnaHRyJwsSCEN1c3RvbWVyIghzeXNhZG1pbgwLEglDb25kaXRpb24YpJwBDA
当我将其转换回来时,我会获得可读的实体,但我会错过ID。这是base64decoded:
"js~over-sightr'Customer"sysadmin Condition��"
有没有办法在不需要Python的情况下恢复所有内容?
旧帖子:
在Google Datastore中,一组分数会保存到DataStore中 nbd.jsonProperty。
我可以在Google Apps脚本中解析此问题,并获得一组数据。现在我 为每个元素找到以下结构:
[ {"not_applicable":false, "key":"aghxxxxxxxxxxIUXVlc3Rpb24YgICAgPjChAoM", "given_score":0 }, ... ]
这里的关键,我可以base64decode。我看到我找到相关的 问题信息(关键点指向另一个实体)。它显示了一个
char + datastoreId + char + kind +?我希望密钥在这里?
执行,我怎样才能得到最后一部分? base64解码器给出了stange 最后一部分的字符,但我怀疑有ID作为 在那里的号码。
我正在使用Google Apps脚本。我可以从这个编码中获取此ID 串?我不能发布整个字符串,但是字节的最后部分 数组是[-128,-128,-128,-8,-62,-124,10,12],我怀疑这个 代表ID。
任何想法或经验?
答案 0 :(得分:0)
URLSafe密钥(特定于Python客户端库)是实体密钥的内部protobuf v1表示的Base64编码版本。它不是为外部解码而设计的。
我不认为Apps Script有一种简单的方法来使用protobuf消息,但理论上你可以通过查看NDB实现并理解Protocol Buffers如何编码数据来实现它。