如何在Python中解码Google App Engine实体键路径字符串?
2 个回答
2
一旦你有了Key
对象(这个对象可以通过把那个不透明的标识符传给构造函数来创建),你可以使用Key.to_path()
来获取这个Key
的路径,结果会是一个列表。比如:
from google.appengine.ext import db
opaque_id = 'agNiYXpyDAsSA2ZvbyIDYmFyDA'
path = db.Key(opaque_id).to_path()
7
from google.appengine.ext import db
k = db.Key('agNiYXpyDAsSA2ZvbyIDYmFyDA')
_app = k.app()
path = []
while k is not None:
path.append(k.id_or_name())
path.append(k.kind())
k = k.parent()
path.reverse()
print 'app=%r, path=%r' % (_app, path)
在开发控制台运行时,这会输出:
app=u'baz', path=[u'foo', u'bar']
正如要求的那样。一个更简短的替代方法是使用(不幸的是,我认为没有文档说明的)to_path
方法,这个方法是Key
实例的一部分:
k = db.Key('agNiYXpyDAsSA2ZvbyIDYmFyDA')
_app = k.app()
path = k.to_path()
print 'app=%r, path=%r' % (_app, path)
结果是一样的。但是第一个更长的版本只依赖于有文档说明的方法。