gpt4 book ai didi

python - 根据查询数据创建键值对

转载 作者:行者123 更新时间:2023-11-28 21:48:21 25 4
gpt4 key购买 nike

python 查询数据库为

m = Request.objects.filter(type__contains='mega')

和一个基于m的queryset as

x = m.values('set', 'value')

它返回类似的值

[{'value': u'sasi', 'set': u'ITEM1'}, {'value': u'babu', 'set': u'ITEM1'},{'value': u'unni', 'set': u'ITEM2'},...]

我打算根据数据创建字典。所以它会像

{'ITEM1': [sasi, babu], 'ITEM2':[unni], 'ITEM3': [x, y, z] , ....}

如何将上述查询集转换为这种字典格式?有什么想法吗?提前致谢。

最佳答案

使用 itertools.groupbydictionary comprehension :

>>> data = [
... {'value': u'sasi', 'set': u'ITEM1'},
... {'value': u'babu', 'set': u'ITEM1'},
... {'value': u'unni', 'set': u'ITEM2'},
... {'value': u'x', 'set': u'ITEM3'},
... {'value': u'y', 'set': u'ITEM3'},
... {'value': u'z', 'set': u'ITEM3'},
... ]
>>>
>>> data = sorted(data, key=lambda d: d['set'])
>>> import itertools
>>> {key: list(d['value'] for d in grp)
... for key, grp in itertools.groupby(data, key=lambda d: d['set'])}
{u'ITEM2': [u'unni'], u'ITEM3': [u'x', u'y', u'z'], u'ITEM1': [u'sasi', u'babu']}

如果查询集按 set 排序,您可以跳过 sorted 调用。

关于python - 根据查询数据创建键值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35501568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com