2016-05-02 3 views
1

Ich versuche, eine JOSN-Datendatei mit mehreren Vorkommen der folgenden Daten unter Verwendung der pprint-Funktion zu drucken.Pretty Mehrere Vorkommen von JSON-Daten in einer Datei in eine Ausgabedatei drucken

Inhalt der Datendatei

{ "_abcd": { "Optionen": {}, "Modul": "xxxx", "Crawler": "1234567890"}, "hash": 1048951621, "os": null, "ip": sgdgdfd, "isp": "ASGSFDF", "port": YYY, "Hostnamen": [], "Standort": {"city": "rtyf", "region_code ":" 00 "," Gebietscode ": null," Länge ": 111.23344," country_code3 ":" xyz "," country_name ":" qazwsx "," postal_code ": null," dma_code ": null," country_code ": "yy", "latitude": 1.11111}, "Zeitstempel": "XXXXX", "Domänen": [], "org": "FFFFF", "Daten": "Unit ID: 0 \ n - Slave ID Daten : \ t() \ n \ nUnit ID: 255 \ n-- Slave-ID-Daten: \ t() \ n \ n "," asn ":" 44444 "," Transport ":" tcp "," ip_str ": "1.2.3.4"} {"_abcd": {"Optionen": {}, "Modul": "yyyy", "Crawler": "999999"}, "Hash": 35473835, "os": null, "ip": sgdgdfd, " ISP ":" TYUUF "," Port ": YYY," Hostnamen ": []," Ort ": {" city ":" wewd "," region_code ":" 00 "," Gebietscode ": null," Längengrad " : 222.3456, "country_code3": "xyz", "country_name": "qazwsx", "postal_code": null, "dma_code": null, "country_code": "yy", "latitude": 1.11111}, "Zeitstempel": "XXXXX", "Domänen": [], "org": "DDDD", "Daten": "Unit ID: 0 \ n - Slave-ID-Daten: \ t() \ n \ nUnit ID: 255 \ n- - Slave ID Daten: \ t() \ n \ n "," asn ":" 44444 "," Transport ":" tcp "," ip_str ":" 4.3.2.1 "} ... mehr von den gleichen Daten wie oben

fand ich den Code in diesem Forum und modifiziert es die Ausgabe in eine Datei zu schreiben:

import json 
from pprint import pprint 

with open('data.json') as data_file:  
data = json.load(data_file) 

with open('outfile.json,'w') as data_out 

pprint(data,stream=data_out) 

Es funktioniert einwandfrei, wenn die Datumsdatei nur 1 Vorkommen der Daten enthält und bei mehreren Vorkommen fehlschlägt.

Wie kann ich den Code ändern, damit er mit mehreren Vorkommen meiner Daten funktioniert?

+3

Wenn Sie Ihre Frage stellen, gibt es eine großes orange war ** Wie zu formatieren ** Feld rechts neben dem Textbereich mit nützlichen Informationen darin. Es gab auch eine komplette Symbolleiste mit Formatierungshilfen. Und eine ** [?] ** -Taste mit Formatierungshilfe. * Und * einen Vorschaubereich zwischen dem Textbereich und der Schaltfläche "Frage posten" (so dass Sie nach dem Button suchen müssen), der zeigt, wie Ihr Beitrag aussehen würde, wenn er gepostet wird. Wenn Sie Ihren Beitrag klarstellen und zeigen, dass Sie sich die Zeit genommen haben, verbessern Sie Ihre Chancen, gute Antworten zu erhalten. –

Antwort

1

Es funktioniert gut, wenn die Datumsdatei nur 1 Vorkommen der Daten enthält und bei mehreren Vorkommen fehlschlägt.

Wenn Sie meinen, Sie haben

 
{"_abcd": ...} 
{"_abcd": ...} 
{"_abcd": ...} 

, die ungültige JSON ist. Um es gültig zu machen, können Sie die Objekte in einem Array wickeln mit [ am Anfang, Kommas in-between und ] am Ende:

 
[ 
{"_abcd": ...}, 
{"_abcd": ...}, 
{"_abcd": ...} 
]