Pretty-Print JSON-Daten in eine Datei mit Python
Einem Projekt für die Klasse beinhaltet das analysieren von Twitter JSON-Daten. Ich bin immer die Daten und wenn er auf die Datei, ohne viel Mühe, aber es ist alles in einer Zeile. Dies ist gut für die Daten-manipulation-ich bin versucht zu tun, aber die Datei ist unglaublich schwer zu Lesen und ich nicht prüfen kann, ist es sehr gut, was das schreiben von code für die Datenmanipulation Teil sehr schwierig.
Weiß jemand, wie man in Python (also nicht mit dem command line tool, welches ich nicht auf Arbeit)? Hier mein code bisher:
header, output = client.request(twitterRequest, method="GET", body=None,
headers=None, force_auth_header=True)
# now write output to a file
twitterDataFile = open("twitterData.json", "wb")
# magic happens here to make it pretty-printed
twitterDataFile.write(output)
twitterDataFile.close()
Hinweis ich Schätze Menschen zeigen mir simplejson Dokumentation und so, aber als ich festgestellt habe, habe ich bereits angeschaut haben und weiterhin Unterstützung benötigen. Eine wirklich hilfreiche Antworten werden Ausführlicher und erklärender ist als die Beispiele dort. Dank
Auch:
Sie versuchen, diese in die windows-Befehlszeile:
more twitterData.json | python -mjson.tool > twitterData-pretty.json
Ergebnisse, in:
Invalid control character at: line 1 column 65535 (char 65535)
Ich würde geben Sie die Daten, die ich verwende, aber es ist sehr groß und Sie haben bereits gesehen, den code, den ich verwendet, um die Datei.
- Ich bezweifle, dass Sie wirklich wollen, zu schreiben, die Binärdaten ("wb")
- Ich wurde gelehrt, dies war notwendig für Windows-Maschinen, und so weit gearbeitet hat, für alle meine Aufgaben. Wenn Sie bieten können, die Dokumentation, warum dies möglicherweise falsch, wäre ich glücklich, es zu betrachten.
- Es ist nur notwendig, wenn Sie das arbeiten mit Binär-Dateien, oder anderen Fällen, in denen die spezifische form der Zeilenende (z.B.
\r\n
vs\n
) ist wichtig. Siehe stackoverflow.com/questions/3257869/.... In Ihrem Fall, Sie möchten, dass windows-freundlich Zeilenenden, aber Sie vielleicht nicht bekommen, dass aus dem twitter-Endpunkt, so öffnen Sie im text-Modus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
with open("name_of_file.json", "w") as f: f.write(my_formatted_json_var)
Vorteil Sie sind sicher, die Datei wird geschlossen, sagen, größer zu schnipseln...with
syntax ist definitiv schöner, aber ich versuchen Sie zu skalieren, meine Antworten, mein PublikumKönnen Sie Parsen der JSON ist, dann Ausgabe, die es wieder mit Einrückungen wie hier:
Sehen http://docs.python.org/library/json.html für mehr info.
header, output = client.request(twitterRequest, method="GET", body=None, headers=None, force_auth_header=True) twitterDataFile = open("twitterData.json", "wb") json.dumps(json.loads(output), twitterDataFile, indent=4) twitterDataFile.close()
json.dump
in eine Datei schreibt.Brauchen Sie nicht
json.dumps()
wenn Sie nicht möchten, Parsen Sie den string später, einfach benutzen Sie einfachjson.dump()
. Es ist auch noch schneller.Können Sie json - Modul von python ganz schön Druck.
So, in Ihrem Fall
doesn't work as well
.?Wenn Sie bereits vorhandene JSON-Dateien, die Sie möchten, ziemlich-format können Sie diese:
Könnten Sie eine Datei umleiten, um python und öffnen Sie mit dem tool und es Lesen auch mehr.
Den Beispielcode werden,