2016-04-08 6 views
1

ich mit Wort zählt gerade arbeite und habe folgend in Django-Ansicht (Python 2):Hinzufügen von Labels zu Key Wert-Paaren in JSON

frequency = {'This': 1, 'is': 2, 'a': 1, 'python': 5, 'dictionary': 1} 

sondern muß es machen zu konvertieren, so dass die Schlüssel-Wert-Paare von wie unten bezeichnet. Die Variable muss sicher in eine Django-Vorlage gerendert werden, um als JavaScript-Variable konsumiert zu werden.

frequency = [{"key": "This", "value": 1}, {"key": "is", "value": 2},{"key": "a", "value": 1}, {"key": "python", "value": 5}, {"key": "dictionary", "value": 5}]; 

Da meine aktuelle Wörterbuch ist viel länger, ich suche für die effizienteste Art und Weise, dies zu erreichen - dies in reinem Python getan werden könnte, bevor sie in dem Kontext als String platzieren?

+1

Try 'new_frequency = [{"key": f, "value": k} für f, k in frequency.items()] ' – Selcuk

Antwort

2

können Sie verwenden items() und Liste Verständnis, dies zu tun:

frequency = {'This': 1, 'is': 2, 'a': 1, 'python': 5, 'dictionary': 1} 
frequency2 = [{"key": i, "value": j} for i,j in frequency.items()] 

Ausgang:

>>> frequency2 
[{'value': 1, 'key': 'This'}, {'value': 1, 'key': 'a'}, {'value': 2, 'key': 'is'}, {'value': 1, 'key': 'dictionary'}, {'value': 5, 'key': 'python'}] 
1

Sie sollten in der Lage sein, es zu tun manuell:

frequency2 = [] 
for each in frequency.items(): 
    frequency2.insert({"key":each[0],"value":each[1]}) 
Verwandte Themen