Ein Projekt für die Klasse umfasst das Parsen von Twitter-JSON-Daten. Ich bekomme die Daten und setze sie ohne große Probleme in die Datei, aber es ist alles in einer Zeile. Dies ist in Ordnung für die Datenmanipulation, die ich versuche, aber die Datei ist lächerlich schwer zu lesen und ich kann sie nicht sehr gut untersuchen, was das Schreiben des Codes für den Datenmanipulationsteil sehr schwierig macht.
Weiß jemand, wie man das in Python macht (dh ohne das Kommandozeilen-Tool, mit dem ich nicht arbeiten kann)? Hier ist 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 Leute, die mich auf simplejson-Dokumentation und dergleichen hinweisen, aber wie ich bereits sagte, habe ich mir das bereits angesehen und brauche weiterhin Unterstützung. Eine wirklich hilfreiche Antwort ist detaillierter und erklärender als die dort gefundenen Beispiele. Vielen Dank
Außerdem: Versuchen Sie dies in der Windows-Befehlszeile:
more twitterData.json | python -mjson.tool > twitterData-pretty.json
führt dazu:
Invalid control character at: line 1 column 65535 (char 65535)
Ich würde Ihnen die Daten geben, die ich verwende, aber sie sind sehr groß und Sie haben bereits den Code gesehen, mit dem ich die Datei erstellt habe.
quelle
\r\n
vs\n
) wichtig ist. Siehe stackoverflow.com/questions/3257869/… . In Ihrem Fall möchten Sie Windows-freundliche Zeilenenden, die Sie jedoch möglicherweise nicht vom Twitter-Endpunkt erhalten. Sie sollten sie daher im Textmodus öffnen.Antworten:
Sie sollten das optionale Argument verwenden
indent
.quelle
with open("name_of_file.json", "w") as f: f.write(my_formatted_json_var)
Vorteil ist, dass Sie sicher sind, dass die Datei geschlossen wird, beispielsweise bei größeren Snippets ...with
Die Syntax ist definitiv besser, aber ich versuche, meine Antworten auf mein Publikum zuSie können den JSON analysieren und dann mit folgenden Einzügen erneut ausgeben:
Weitere Informationen finden Sie unter http://docs.python.org/library/json.html .
quelle
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.dumps
gibt einen String zurück.json.dump
schreibt in eine Datei.Sie brauchen nicht,
json.dumps()
wenn Sie die Zeichenfolge später nicht analysieren möchten, verwenden Sie einfachjson.dump()
. Es ist auch schneller.quelle
Sie können das json- Modul von Python verwenden, um hübsch zu drucken.
Also in deinem Fall
quelle
doesn't work as well
?Wenn Sie bereits JSON-Dateien haben, die Sie hübsch formatieren möchten, können Sie Folgendes verwenden:
quelle
Wenn Sie eine neue * .json-Datei generieren oder eine vorhandene Josn-Datei ändern, verwenden Sie den Parameter "indent" für das hübsche View-JSON-Format.
quelle
quelle
Sie können eine Datei nach Python umleiten und mit dem Tool öffnen und zum Lesen mehr verwenden.
Der Beispielcode lautet:
quelle