我有一个Db表,其中数据以下面的格式存储。
+---------+-------------------------------------------+-------------+
| id | category | categ_rules |
+---------+-------------------------------------------+-------------+
| 1 | A | Invetory |
| 2 | A | Index |
| 3 | B | Organic |
| 4 | B | Shuffle |
| 5 | B | Parag |
| 6 | C | Numero |
| 7 | C | Rugby |
| 8 | D | Amdar |
| 9 | D | Rutha |
| 10 | D | Athens |
+---------+-------------------------------------------+-------------+
我想以下面的格式准备字典
{
'category': A,
'rules_data': [{'rules_id': 1, 'categ_rules': Inentory},{'rules_id': 2, 'categ_rules': Index}]
}
......类似于B,C,D
我写了一个django查询来提取所有数据
rules_data = CatRule.objects.all()
如何遍历对象并构建格式以上的数据。
答案 0 :(得分:0)
a
类似于查询中的ur行
注意只能以类似的顺序从ur查询中带来category,ruleid,categ_rules
a=[[1,'A','Inv'],[2,'A','Index'],[3,'B','Orga']]
values = set(map(lambda x:x[1], a))
dict=[]
for x in values:
temp={}
temp['catogory']=x
temp['rules']=[]
for y in a:
if y[1]==x:
temp['rules'].append({'ruleid':y[0],'categ_rules':y[2]})
dict.append(temp)
print dict
#output=[{'rules': [{'categ_rules': 'Inv', 'ruleid': 1}, {'categ_rules': 'Index', 'ruleid': 2}], 'catogory': 'A'}, {'rules': [{'categ_rules': 'Orga', 'ruleid': 3}], 'catogory': 'B'}]