Python: Konvertieren einer Liste von Wörterbüchern in json

81

Ich habe eine Liste von Wörterbüchern, die ungefähr so ​​aussehen:

list = [{'id': 123, 'data': 'qwerty', 'indices': [1,10]}, {'id': 345, 'data': 'mnbvc', 'indices': [2,11]}]

und so weiter. Möglicherweise enthält die Liste weitere Dokumente. Ich muss diese in ein JSON-Dokument konvertieren, das per Flasche zurückgegeben werden kann, und ich kann nicht verstehen, wie das geht. Bitte helfen Sie. Ich habe ähnliche Fragen auf dieser Website gesehen, aber ich konnte die Lösungen dort nicht verstehen.

Apoorv Ashutosh
quelle

Antworten:

118

Verwenden Sie die JSON-Bibliothek

import json
json.dumps(list)

listÜbrigens könnten Sie in Betracht ziehen, die Variablenliste in einen anderen Namen zu ändern. Dies ist die integrierte Funktion für eine Listenerstellung. Wenn Sie den Variablennamen nicht ändern, können unerwartete Verhaltensweisen oder fehlerhafter Code auftreten.

markcial
quelle
1
In Ordnung. Dies ist nur ein Beispiel, und ich verwende dafür den Namen mylist. Funktioniert dumps () auch für Listen? Ich dachte, es sollte nur für Diktate verwendet werden.
Apoorv Ashutosh
Ist es möglich, die Datei als JSON Column Array oder JSON Row Array zu speichern?
Anoop Toffy
HINWEIS: Das Neuzuweisen der Liste (list = [1,2,3]) steht in Konflikt mit der integrierten Methodenliste (). bitte bedenke.
Nikil Swami
25
import json

list = [{'id': 123, 'data': 'qwerty', 'indices': [1,10]}, {'id': 345, 'data': 'mnbvc', 'indices': [2,11]}]

In json-Datei schreiben:

with open('/home/ubuntu/test.json', 'w') as fout:
    json.dump(list , fout)

Json-Datei lesen:

with open(r"/home/ubuntu/test.json", "r") as read_file:
    data = json.load(read_file)
print(data)
#list = [{'id': 123, 'data': 'qwerty', 'indices': [1,10]}, {'id': 345, 'data': 'mnbvc', 'indices': [2,11]}]
Ramineni Ravi Teja
quelle
HINWEIS: Das Neuzuweisen der Liste (list = [1,2,3]) steht in Konflikt mit der integrierten Methodenliste (). bitte bedenke.
Nikil Swami
1
response_json = ("{ \"response_json\":" + str(list_of_dict)+ "}").replace("\'","\"")
response_json = json.dumps(response_json)
response_json = json.loads(response_json)
Akhilesh Joshi
quelle
2
Hallo! Während dies das Problem von OP lösen kann, wird im Allgemeinen davon abgeraten, nur Code-Antworten auf SO zu schreiben. Bitte erläutern Sie, warum dies eine Lösung für das Problem darstellt, da dies OP hilft, die Website besser zu verstehen und zukünftigen Besuchern der Website zugute zu kommen. Vielen Dank!
d_kennetz
0

Verwenden Sie den folgenden Code, um es in ein einzelnes Wörterbuch mit einem bestimmten Schlüsselwert zu konvertieren.

data = ListOfDict.copy()
PrecedingText = "Obs_"
ListOfDictAsDict = {}
for i in range(len(data)):
    ListOfDictAsDict[PrecedingText + str(i)] = data[i]
Mohit Rajput
quelle