2017-06-27 6 views
0

Ich habe eine Funktion, die einen Bericht aus einer Excel-Datei generiert. Vorerst funktioniert wie:Hinzufügen von JSON-Objekten zu einer Liste

import json 

def get_dic_from_two_lists(keys, values): 
    return { keys[i] : values[i] for i in range(len(keys)) } 

def report(items): 
    for i in range(items): 
     dict_keys = ['name', 'age'] 
     dict_values = ['n', 'a'] 
     data = get_dic_from_two_lists(dict_keys, dict_values) 
     report = json.dumps(data) 
     print(report) 
report(5) 

Wo Artikel ist Anzahl der Berichte zu generieren. Es funktioniert gut, aber ich muss Ergebnisse in eine Liste anhängen und JSON-Objekte mit einem Komma trennen und außerdem alles in eine Datei schreiben. Irgendein guter Weg, es zu tun? append() Funktion scheint einfach nicht zu funktionieren.

Danke!

+1

Können Sie die Vertiefung und Zeichensetzung in Ihrem Code zu beheben, so dass es nicht zu einem Syntaxfehler produziert? – khelwood

+0

Sicher, schon erledigt. –

+0

posten Sie Ihre gewünschte Ausgabe, um auf derselben Seite zu sein –

Antwort

2

können Sie alle Ihre Report-Objekte in der Liste setzen und es dann auf einmal zu JSON konvertieren:

import json 

def get_dic_from_two_lists(keys, values): 
    return { keys[i] : values[i] for i in range(len(keys)) } 

def report(items): 
    data_list = [] 
    for i in range(items): 
     dict_keys = ['name', 'age'] 
     dict_values = ['n', 'a'] 
     data = get_dic_from_two_lists(dict_keys, dict_values) 
     data_list.append(data) 

    reports = json.dumps(data_list) 
    print(reports) 

report(5) 
+0

Reines Gold, verstand meinen Fehler. Vielen Dank! –

Verwandte Themen