2012-09-01 71 views
-1

我對Django/Python的世界很陌生。數據結構中的組值

我有一個經理以下查詢:

listOfHeroes = self.all().values('user__user__username','skill','level') 

它返回一個表是這樣的:

[{'user__user__username': u'Aragorn', 'skill': 'Fireball', 'level': 5}, {'user__user__username': u'Leonidas', 'skill': 'sword', 'level': 1},{'user__user__username': u'Aragorn', 'skill': 'sword', 'level': 4},....] 

我的英雄想組我的數據。我的意思是阿拉貢有兩個技能火球和劍:

User: Aragorn/Skills: { sword level 4/fireball level 5} 

最終DATAS我有哪裏的技能是由用戶分組必須易於迭代。

如果您有任何意見......我試圖創建一個字典,但我失敗了..

回答

0

如果你不想改變你的數據庫查詢,使用此:

result = {} 
for item in listOfHeroes: 
    if item['user__user__username'] not in result: 
     result[item['user__user__username']] = [] 
    result[item['user__user__username']].append({'skill': item['skill'], 'level': item['level']}) 

for key, value in result.items(): 
    print 'User: {0}/Skills: {{ {1} }}'.format(key, '/'.join(['{0} level {1}'.format(skill['skill'], skill['level']) for skill in value])) 
+0

它呈現如下: {u'Aragorn':['Fireball','Sword'],u'Leonidas':['sword'] ... 是否有可能擁有類似字典的東西:{'user' '阿拉貢,技能:{[技能:'火球',等級:5] [技能:'劍',level4}} {用戶:'leonidas'...... –

+0

Alex Grs - 檢查我的更新,你請求的字典是壞的格式化。 – MostafaR