组数据结构中的值

时间:2012-09-01 19:20:09

标签: python django

我对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}

我有技能按用户分组的最终数据必须易于迭代。

如果您有任何想法......我曾尝试创建字典,但我失败了..

1 个答案:

答案 0 :(得分: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]))