Python – Zählt Vorkommen von Kombinationen von Werten in JSON

Ich verwende Python, um zu versuchen, eine JSON-Datei zu analysieren. Ähnlich wie bei diesem Frage möchte ich die Anzahl der Vorkommen für jede Kombination von 2 Werten in der Datei zählen:

Beispiel JSON:

{ 
"first": "John",
"last": "Smith"
},
{ 
"first": "Adam",
"last": "Smith"
},
{ 
"first": "Adam",
"last": "Doe"
},
{ 
"first": "John",
"last": "Smith"
}

Die gewünschte Ausgabe würde ungefähr so ​​​​berechnet (weniger um das Format besorgt, sondern um Zählwerte und zugehörige Elemente):

{ 
"first": "John", "last": "Smith", "count": 2
},
{ 
"first": "Adam", "last": "Smith", "count": 1
},
{ 
"first": "Adam", "last": "Doe", "count": 1
}

Ich habe das Folgende ausprobiert, aber es zählt offensichtlich nur die eindeutigen "ersten" Werte und ich kann keinen Weg finden, das zweite Attribut als "letztes" zu betrachten Gut.

import json
from json import load
from collections import Counter

f = open('/PathToFile')
data = load(f)
c = Counter(i ['first'] for i in data)
print(c)

🤔 А знаете ли вы, что...
Python используется в разработке игр с помощью библиотеки Pygame.


16
1

Antwort:

Gelöst

Sie können die Tupel (erster, letzter) in Ihrem Zähler zählen:

Counter((i['first'], i['last']) for i in data)