Wie lerne ich, ein Programm zu schreiben, das Objekte aus JSON / XML extrahieren kann?

222
Grobsrop

Haftungsausschluss

Zunächst einmal, dies ist eine meiner ersten Fragen zu SE, also entschuldige ich mich, wenn ich schriftliche oder ungeschriebene Konventionen breche.

Einführung

Bei meinem Job in einer Art Kundendienst- / Supportrolle muss ich häufig die Protokolldateien einer unserer REST-Schnittstellen (JSON-Format) überprüfen.

Dieses Protokoll enthält die auf einem unserer Webservices gestellten Anfragen. Die Daten sind für uns statistisch interessant, daher hat einer unserer Entwickler irgendwann ein Tool entwickelt, das Daten aus dem Protokoll extrahiert und eine CSV-Datei zurückgibt, die zur Datenmanipulation verwendet werden kann.

Einer unserer anderen Kunden (auf einem anderen Server) verwendet den Webservice jedoch etwas anders, was dazu führt, dass das Tool die Daten nicht verarbeiten kann. Die Sache ist, dass unsere Entwickler sehr beschäftigt sind, und dies ist kein Thema mit hoher Priorität. Es scheint mir jedoch so, als ob dies ziemlich einfach sein sollte, also möchte ich einen guten Eindruck machen und vielleicht selbst bauen.

Beispiel

Beispieleingabe (JSON):

2017-01-31 05:42:43:587 -> 2017-01-31 05:42:43:587:1536:GET /v1/webservice_path.../ABC123 X-Api-Key:xyz  2017-01-31 05:42:43:587 <- 2017-01-31 05:42:43:587:1536:OK:{ "parameter 1": true, "parameter 2": true 

Beispielausgabe (CSV):

ID;Parameter 1;Parameter 2 ABC123;true;true 

Ich habe technisches Flair, aber absolut keine formale Schulung in der Codierung, abgesehen von den grundlegendsten HTML-, Python- und Ruby-Kursen auf CodeAcademy.

Frage

Dies ist eigentlich eine zweiteilige Frage:

  1. Wie und wo lerne ich, ein solches Werkzeug / Skript zu erstellen? Welche Sprache, welchen Kanal soll man lernen usw.
  2. Ist es überhaupt realistisch für mich zu versuchen, dies bauen zu können? Und lohnt sich die Zeit, die das Lernen kostet?

Zusatzinformation

Ich möchte das Werkzeug selbst bauen; nicht in eine Lösung kopieren, die einer von Ihnen möglicherweise in wenigen Minuten erstellen kann. Ein Grund dafür ist, dass die Nutzung unseres Webservices von Kunde zu Kunde unterschiedlich ist. Möglicherweise nutzt ein anderer Kunde diesen Dienst (auf den ich mich auch vorbereiten möchte):

2017-01-31 05:42:43:587 -> 2017-01-31 05:42:43:587:1536:GET /v1/webservice_path.../ ID_1:ABC123 ID2_:QWE456 X-Api-Key:xyz  2017-01-31 05:42:43:587 <- 2017-01-31 05:42:43:587:1536:OK:{ "parameter 1": true, "parameter 2": true "parameter 3": true 

(Bitte beachten Sie, dass die Anfrage nicht direkt hinter / platziert wird, sondern die Eingabe in Feld "ID_1" und ein optionales zusätzliches Feld "ID_2" enthält auch Daten.)

0
Technisch gesehen, da das schließende `}` fehlt, ist weder gültiger JSON. Durch Leerzeichen getrennte URLs sehen Sie etwas seltsam aus, da Sie für die Erstellung lediglich entscheiden, welche Sprache Sie verwenden möchten, und die entsprechenden Dokumentationen / Tutorials durchsehen. Wie Sie sagten, haben Sie ein paar grundlegende Pythons geschrieben, die Sie in [Parsing-Werte aus einer JSON-Datei mithilfe von Python?] Untersuchen können (http://stackoverflow.com/questions/2835559/parsing-values-from-a-json-file-using- Python). Seth vor 7 Jahren 0
Das schließende {ist in der Datei, aber ich habe es vermisst, als ich es abschloss. Vielen Dank für Ihren Kommentar, wir werden uns definitiv mit dieser Frage befassen! Grobsrop vor 7 Jahren 0
Ich konnte erfolgreich JSON-formatierte Daten mit Python extrahieren und parsen, bevor ich `with open (RawDataFile," r ") als file: data = json.load (file)` und dann `with open (CsvFile," w ") verwendete. , newline = '') als Datei: csv_file = csv.writer (file) `für eine einfache und einfache Lösung. Ich hatte nicht wirklich viel Python-Erfahrung, bis ich anfing, daran zu arbeiten und sogar Powershell und andere Lösungen auszuprobieren. Die einfachste Lösung, die ich in meinem Fall fand, war Python, also würde ich mir das sicher mal ansehen. Wenn Sie ein besseres Beispiel aus einem Link oder einem Dump liefern können, kann ich möglicherweise mit der von Ihnen verwendeten Syntax mehr helfen. Pimp Juice IT vor 7 Jahren 0
Probleme, die sich auf die Programmierung und Softwareentwicklung beziehen, sind nicht relevant, siehe [On-Topic] (https://superuser.com/help/on-topic). Versuchen Sie [SO], aber lesen Sie zuerst [Wie stelle ich eine gute Frage?] (Https://stackoverflow.com/help/how-to-ask). DavidPostill vor 7 Jahren 1
Danke für das Feedback, David. Nachdem ich die von Ihnen verlinkte Richtlinie gelesen habe, bin ich mir nicht ganz sicher, was geändert werden muss, damit dies als gute Frage betrachtet wird. Kannst du mir dabei helfen? Was ist auch vorzuziehen: dass ich die Frage kopiere und zu SO frage oder dass die Frage migriert wird? Grobsrop vor 7 Jahren 0

0 Antworten auf die Frage