Konvertierung von JSON zu .csv
Ich habe festgestellt, dass einige Daten, die jemand, ist das herunterladen in eine JSON-Datei (ich glaube! - Ich bin ein newb!). Die Datei enthält Daten, die auf fast 600 Fußball-Spieler.
Hier ist die Datei: https://raw.githubusercontent.com/llimllib/fantasypl_stats/f944410c21f90e7c5897cd60ecca5dc72b5ab619/data/players.1426687570.json
Gibt es eine Möglichkeit, ich kann greifen einige der Daten und umwandeln .csv? Insbesondere die 'Fixture Geschichte'?
Vielen Dank im Voraus für jede Hilfe 🙂
- vielleicht hilft es dir convertcsv.com/json-to-csv.htm
- willst du es konvertieren in code? wenn ja, welche Sprachen verwenden Sie?
- Vielen Dank für die Beantwortung, ich bin neu hier. Ich möchte zu extrapolieren einige der Daten in eine .csv-also kann ich spielen, mit den Daten in einer Tabelle, speziell 'fixture Geschichte'. Ich Frage mich, wenn Sie könnte nehmen Sie einen Blick und geben Sie mir einige Hinweise auf wie dies zu tun?
- JSON ist ein detaillierter Daten-format als CSV - es erlaubt für komplexere Datenstrukturen. Zwangsläufig, wenn Sie dies tun, Sie 'verlieren detail'. So ein Beispiel von dem, was Sie haben in mind für die Ausgabe sinnvoll wäre. Jeder Spieler hat mehrere Spiele - würden Sie denken, eine Spalte für jeden, oder eine Zeile für jedes Gerät?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Python hat einige gute Bibliotheken, dies zu tun. Wenn Sie kopieren Sie den folgenden code in eine Datei und speichern Sie es als fix_hist.py oder so etwas, dann speichern Sie Ihre JSON-Datei als - Datei.json in das gleiche Verzeichnis, es wird eine csv-Datei erstellen mit der Vorrichtung Geschichten jede eingesparte Zeile. Führen Sie einfach
python fix_hist.py
in die Eingabeaufforderung (oder terminal für mac):json_data.close()
Hinzufügen, um zusätzliche Daten zu der Vorrichtung Geschichte, die Sie hinzufügen können insert-Anweisungen vor dem schreiben der Zeilen:
Mit
insert()
, einfach an die position in der Zeile, die Sie möchten, dass die Daten Stelle zu besetzen, als erstes argument.json_load()
wenn, das ist ein Problem, Sie könnte auch die Nummer als erstes argument, dann verwenden Sie Excel, um die Zeilen, die auf dieser GrundlageHier ist eine Lösung mit jq
Wenn die Datei
filter.jq
enthältsowie
data.json
enthält die sample-Daten dann den Befehlerzeugt die Ausgabe (beachten Sie, dass nur 10 Zeilen hier gezeigt)
JSON ist ein detaillierter Daten-format als CSV - es erlaubt für komplexere Datenstrukturen. Zwangsläufig, wenn Sie dies tun, Sie 'verlieren detail'.
Wenn Sie wollen, um es zu Holen automatisch - das ist machbar, aber ich habe es ausgelassen, weil 'tun'
https
URLs ist etwas komplizierter.So vorausgesetzt, Sie haben Ihre Datei heruntergeladen hat, hier ist eine mögliche Lösung in Perl (hast Du schon eins für Python - beide sind sehr leistungsfähige Script-Sprachen, kann aber ziemlich viel Deckel die gleiche Boden - es ist also ebenso eine Frage des Geschmacks, welche Sie verwenden).
Hoffentlich können Sie sehen, was hier Los ist, laden Sie die Datei
$input
, unddecode_json
zum erstellen einer Daten-Struktur.Diese Datenstruktur ist eine verschachtelte
hash
(perl-Begriff für den Typ der Datenstruktur).hash
es werden Schlüssel-Wert-Paare.Also extrahieren wir die
keys
aus diesem hash - was ist die ID-Nummer am Anfang jedes Eintrags.Dann haben wir eine Schleife durch jeden von Ihnen - das extrahieren der
fixture_history
array. Und für jedes element im array, drucken wir die Spieler-ID, Ihrenweb_name
und dann die Daten ausfixture_history
.Gibt diese Ausgabe:
Macht das Sinn?
https
Daten, die Verwendung vonLWP::UserAgent
. Ich habe versucht, eine Probe, und es hat nicht funktioniert, also noch nicht gepostet hat 🙂