我有一系列的字典。我不知道这个列表中会有多少个dict,因为数据的结果是不同的。 我必须从中找出共同点。一旦我找到了共同点,我就必须合并那些具有相同值的dict,并计算出这些值的频率。你知道吗
这是示例数据。你知道吗
[
{
"id": 100
"category": null,
"mid": null
},
{
"id": 100
"city": "roma"
},
{
"id": 100
"category": null,
"mid": null
},
{
"id": 100
"city": "roma"
},
{
"id": 200
"category": "red",
"mid": null
},
{
"id": 200
"region": "toscany"
},
{
"id": 300
"category": "blue",
"mid": "cold",
"sub": null
},
{
"id": 400
"category": "yellow",
"mid": "warm"
},
{
"id": 400
"city": "milano"
}
]
而预期的结果应该是这样的。你知道吗
[
{
"id": 100
"category": null,
"mid": null,
"city": "roma"
"count": 2
},
{
"id": 200
"category": "red",
"mid": null,
"region": "toscany",
"count": 1
},
{
"id": 300
"category": "blue",
"mid": "cold",
"sub": null,
"count": 1
},
{
"id": 400
"category": "yellow",
"mid": "warm",
"city": "milano",
"count": 1
}
]
我知道如何从两个dict中找出共同点,但不知道如何使用多个dict。也许我可以使用items()来找到相同的值,使用chainmap()来合并,但到目前为止,仍然没有得到预期的结果。你知道吗
编辑 当我只有两个字典的时候我做了什么。你知道吗
a={
"id": 100,
"category": null,
"mid": null
}
b={
"id": 100,
"city": "roma"
}
def grouping_records():
rows.sort(key=itemgetter('id'))
for date, items in groupby(rows, key=itemgetter('id')):
print(id)
for i in items:
print(' ', i)
if __name__ == "__main__":
grouping_records()
groupby对我们很多人来说有点复杂,试试这个天真的解决方案吧
相关问题 更多 >
编程相关推荐