Python 在数据存储中保存数据

Python 在数据存储中保存数据,python,google-app-engine,Python,Google App Engine,如果我有一个类和一个列表(但在我的例子中是大约30个值): 我想将这些值保存在数据存储中,在调用类保存值时,是否有一种使用for或while循环的方法,如果没有这种方法,我需要设置一个值,例如: xabc = ABC(x = var['x'], y = var['y'], z = var['z']) xabc.put() 我看不到你的问题中描述的“列表”,所以我不知道我是否正确地解释了你的问题 我想你是想问:如果一个字典有一组动态(但有限)的键/值对,我如何初始化一个ABC实例 如果我理解您的

如果我有一个类和一个列表(但在我的例子中是大约30个值):

我想将这些值保存在数据存储中,在调用类保存值时,是否有一种使用for或while循环的方法,如果没有这种方法,我需要设置一个值,例如:

xabc = ABC(x = var['x'], y = var['y'], z = var['z'])
xabc.put()
我看不到你的问题中描述的“列表”,所以我不知道我是否正确地解释了你的问题

我想你是想问:如果一个字典有一组动态(但有限)的键/值对,我如何初始化一个
ABC
实例

如果我理解您的意图,那么您应该能够在字典的键/值对上执行简单的循环,并使用
setattr()
将这些键推送到您的实体中

xabc = ABC()
for key, value in var.iteritems():
    setattr(xabc, key, value)
替代方法:您可以直接使用构造函数,从字典中输入关键字参数,使用
**
拼接关键字参数:

xabc = ABC(**var)

你对字典中的键有什么限制吗?如果你事先知道这些是什么,那就太好了。字典从何而来?

正如dyoo所提到的,您需要确保字典的键必须是模型的有效属性,或者如果您不能确定,最好将其包装在一个try/catch中。我有一个类ABC表示来自数据库的字段名。我有一个值字典(var),它包含几个通过POST传递的值。但是我有很多变量,我想知道是否有一种更动态的方法来保存它,因为字典中的值的名称将与数据库中的字段名称相同。Ai考虑使用一个循环来再次重复它,并添加名称来设置名称,然后调用类来保存数据库循环,重复自己在数据库中传递字段名及其值的参数。在这种情况下,我建议大家要非常小心。我个人觉得在这里做任何过于动态的事情都不舒服,尤其是如果字典是外部来源的话。实体的某些属性应被视为“特权”,例如
。你不想让外部内容毫无限制地进入并影响如此广泛的属性:那只是要求被滥用。
xabc = ABC(**var)