Wie kann ich JSON-Array-Daten aus GMail in Google Spreadsheet analysieren?

685
Indrid Cold

OK, ich hoffe klar zu sein, wenn ich erkläre, was ich gerne tun würde ... Ich habe eine persönliche ADSB-Station (die mir auch bei anderen Aufgaben hilft) eingerichtet und setzt eine Antenne für 1090, Raspberry Pi 3B, Filter und Verstärker auf mein Dach . Ich habe Dump1090-Mutability-Task rund um die Uhr ausgeführt und füttere 5-6 Online-Flugdatendienste. Mit Hilfe des 'jq'-Pakets (Parsen von aircrafts.json aus dump1090-Daten) und nach dem Einstellen von' mailutils 'und' ssmtp ', um mich per E-Mail zu benachrichtigen, wenn ein benutzerdefinierter ICAO-, Flugname- oder Notfall-Transponder-SQUAWK-Code erkannt wird Mit Hilfe von CRON und einigen meiner Skripts erhalte ich eine Benachrichtigungsmail dieser Art:

{  "hex": "400af7",  "squawk": "1000",  "flight": "EZY42KU ",  "lat": 42.692322,  "lon": 10.078458,  "nucp": 7,  "seen_pos": 3.7,  "altitude": 37000,  "vert_rate": 960,  "track": 318,  "speed": 409,  "category": "A0",  "mlat": [],  "tisb": [],  "messages": 402,  "seen": 0,  "rssi": -27.5  } 

Dies ist der Nachrichtentext mit erkanntem ADSB-Datenarray, das von 'jq' analysiert wird. Mit Hilfe des IFTTT-Dienstes habe ich eingerichtet, dass für jede Mail dieser Art ein neuer Datensatz in einer Google-Tabelle angehängt wird, um die Kontakte und die Notfall-SQUAWKs zu archivieren und zu protokollieren.

Aber das beste Ergebnis, das ich bis jetzt erzielt habe, ist: Spalte A für Datum und Uhrzeit und Spalte B für den gesamten Körper der E-Mail - ich würde mich freuen, wenn es jemanden gibt, der mir sagen kann, wie man für JEDE Spalte einen Abschnitt der Array, wie zum Beispiel B für Hex, C für Squawk, C für Flugname usw. in der Google-Tabelle.

Vielen Dank!

1
Das sieht nach einem riesigen Aufwand aus, um diese Art von System aufzubauen! Ich frage mich jedoch, ob es nicht einfacher war, die Google-Tabelle direkt über das Skript zu aktualisieren, das die E-Mail sendet. Mit einigen Python-Kenntnissen und dieser Dokumentation: https://developers.google.com/sheets/api/quickstart/python sollte es nicht schwer sein. wvxvw vor 7 Jahren 0
Vielen Dank für Ihren Kommentar, zunächst einmal - Ich mochte die Mailbenachrichtigungsidee, um mich zu benachrichtigen, wenn ich mich nicht vor dem PC befinde ... Wenn dies nicht möglich ist oder wenn es zu komplex ist, kann ich es direkt ausprobieren BASH-Skript für GDrive / Google Spreadsheet ... eine Idee für das korrekte Parsen? Indrid Cold vor 7 Jahren 0
Ich kenne mich mit dieser speziellen Python-Bibliothek nicht aus, aber vor etwa 6-7 Jahren musste ich mich mit Google-Tabellenkalkulationen befassen. Ich könnte versuchen, morgen etwas zu schreiben. Python verfügt auch über eine IMAP-Bibliothek, mit der Sie eine Verbindung zu Ihrer Mailbox herstellen und E-Mails lesen können. wvxvw vor 7 Jahren 0
Es wäre fantastisch ... danke Freund. Indrid Cold vor 7 Jahren 0
@wvxvw Ich teile mit Ihnen das Skript, das ich verwende - dieses fängt und analysiert die Daten-Arrays von aircraft.json. Die Datei wurde von dump1090-Mutability-Task aktualisiert, die den Flugverkehr überprüft: #! / bin / bash list = (7500 7600) 7700) Für den Wert in "$ " müssen Sie http://127.0.0.1/dump1090/data/aircraft.json 2> / dev / null | jq '.aircraft [] | select (.squawk == "'$ value'") | . ' # echo $ fertig Indrid Cold vor 7 Jahren 0
@wvxvw im Skript vor, ich überprüfe nur Flüge mit Notrufcode. Nun, wie kann ich jede Ergebniszeichenfolge des Arrays in jede Spalte von Google Spreadsheet parsen (wenn ich mich dazu entscheide, direkt von bash zu spreadsheet zu wechseln und die GMail-Passage zu verlassen)? Um die Dinge "salziger" zu machen, habe ich gesehen, dass, wenn mehr Kontakte gesehen werden, wenn die gleiche Zeit vorhanden ist, die aufgezeichneten Arrays zu mehreren werden. Indrid Cold vor 7 Jahren 0
Hey, entschuldige mich für die langsame Antwort. Ich habe versucht, etwas mit https://developers.google.com/sheets/api/quickstart/python zu tun, aber es ist wirklich ein Haufen Müll ... :( Es ist so schlimm, dass es völlig undurchführbar ist Eine alternative Python-Bibliothek, die mit GooleSheets funktioniert, aber keine neue API unterstützt. Die gesamte Google-API ist ein riesiges Durcheinander ... Ich habe einen Tag lang versucht, eine Tabelle zu bearbeiten, konnte dies jedoch noch nicht verbinden... wvxvw vor 7 Jahren 0
Dies ist die Hälfte des Weges: Es kann nur die Kalkulationstabelle aktualisieren, aber es kann noch keine Verbindung von GMail hergestellt und gelesen werden: https://github.com/wvxvw/mail2spreadsheet Ich habe einige Anweisungen in die Readme-Datei eingefügt, die in der Titelseite. wvxvw vor 7 Jahren 0

0 Antworten auf die Frage