如何从数据存储模型创建嵌套字典?
我已经在这个问题上工作了几天,我的想法是基于这个模型:
class oceni(db.Model):
user = db.UserProperty()
weight = db.FloatProperty()
item = db.StringProperty()
..想要创建一个这样的字典格式:
collection = dict()
collection = {
'user1':{'item1':weight1,'item2':weight2..},
'user2':{'item3':weight3,'item4':weight4..},
..}
..到目前为止,我的进展是这样的:
kontenier = db.GqlQuery('SELECT * FROM oceni')
kolekcija = dict()
tmp = dict()
lista = []
for it in kontenier:
lista.append(it.user)
set = []
for e in lista:
if e not in set:
set.append(e)
for i in set:
kontenier = db.GqlQuery('SELECT * FROM oceni WHERE user=:1',i)
for it in kontenier:
tmp[it.item]=it.weight
kolekcija[i]=tmp
..但是这样创建的字典是所有用户都有相同的字典,里面的项目和它们的权重都是一样的。我知道这样做不是最符合Python风格的,但我还是新手,所以我很想学习更多关于这个问题的知识。
相关问题:
1 个回答
3
我在这个代码片段中使用了你们的变量名称和符号。
kontenier = db.GqlQuery('SELECT * FROM oceni')
kolekcija = {}
for it in kontenier:
if it.user not in kolekcija:
kolekcija[it.user] = {}
kolekcija[it.user][it.item] = it.weight