我使用下面的代码来获取一行中的所有值。
from google.appengine.ext import db
from python_lib.models import Field
field = Field.all()[0]
names = Field.properties()
for key in names:
print field.get(key)
但它给出了以下错误,
BadKeyError: Invalid string key name.
最佳答案
您在这段代码中混淆了太多不同的 api。
for key in names:
print field.get(key)
您的 get() 调用无效,因为您实际上正在尝试调用类方法来从数据存储区获取实体 - 请参阅此方法的文档 https://developers.google.com/appengine/docs/python/datastore/modelclass#Model_get 。
要从字段实例(您的对象)中按名称获取属性,您应该使用 getattr
如
for key in names:
print getattr(field,key)
或者全部交替使用属性对象的get_value_for_datastore(model_instance)
,该属性对象是从properties()调用中返回的以及属性的名称。
关于python - 获取行上的所有字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15053792/