JSON Datei analysieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
USER0518
User
Beiträge: 1
Registriert: Mittwoch 29. Januar 2025, 13:47

Hallo in die Runde

Ich habe als Vorlage eine JSON Datei aus einem Chat ( Telegramm ) . ( Öffentlich zugänglich damit Datenschutzkonform )

Um diese Datei hier zu posten, wäre wohl etwas zu viel des Guten ( ca. 490 MB )
Nun möchte ich in diese Messages hineinschauen können um nach einem gewissen Inhalt zu suchen.

Code: Alles auswählen

{'id: 456215,
 'type' : 'message',
 'date': '2024-1205',
 ....
}
Das ist der prinzipielle Grundaufbau, einer solchen Message

Wie kann ich nun mir eine solche Message herauspicken, wenn mir dir Message ID bekannt ist ?

Und als weitere Frage, wie kann prüfen ob dem Element 'text' nach den Textbausteinen noch eine weiteres in der Hierarchie untergeordnetes Element 'reactions' vorhanden ist.

Die Einzulesen mit dem Import von Json ist erst einmal nicht das Problem - nur wie kann gezielt in die Ebenen springen, abfragen ob in dieser Ebene ein spezielles Element vorhanden ist, und dann diese als solches für eine Suchfunktion herauslösen ?

Danke im voraus

U.A.
Benutzeravatar
__blackjack__
User
Beiträge: 14045
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@USER0518: Kleine Vorbemerkung: Nur weil personenbezogene Daten öffentlich verfügbar sind, darf man die nicht automatisch beliebig verarbeiten.

Zur Frage: Python-Grundlagentutorial durcharbeiten, dort über Datentypen Zeichenketten, Zahlen, Wahrheitswerte, `None`, Listen, Wörterbücher und dann Schleifen, Vergleiche, bedingte Ausführung, und vielleicht „list comprehension“ und die anderen „comprehension“-Varianten lernen. Das braucht man dazu. Wie JSON-Werte/Typen auf Python-Werte/Typen abgebildet werden, steht in der Dokumentation vom JSON-Modul.

Funktionen und Generatorfunktionen schreiben zu können wird sich wahrscheinlich auch als nützlich heraus stellen.

Es gibt auch Bibliotheken wie `glom`, die manchmal ganz praktisch sein können wenn man auf verschachtelten Datenstrukturen operiert. Ob das hier der Fall ist, kann man so pauschal nicht sagen. Das hat halt auch noch mal eine gewisse Einarbeitungszeit.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Benutzeravatar
DeaD_EyE
User
Beiträge: 1238
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

__blackjack__ hat geschrieben: Mittwoch 29. Januar 2025, 15:04 @USER0518: Kleine Vorbemerkung: Nur weil personenbezogene Daten öffentlich verfügbar sind, darf man die nicht automatisch beliebig verarbeiten.
Das spielt keine Rolle, da letztendlich die Betrüger gewerbsmäßig diese Daten nutzen, um besser betrügen zu können. Die bekommen sie aber nicht hier aus diesem Forum.

Eine 490 MiB große JSON-Datei ist echt übertrieben. Haben die Hacker das Tutorial für sqlite noch nicht durchgearbeitet?
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Benutzeravatar
noisefloor
User
Beiträge: 4191
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Das gute bei Python ist, dass sich JSON Objekte sehr gut auf Python Dicts und JSON Arrays auf Python Liste abbilden lassen. Also beides Grunddatenstrukturen in Python. Wenn du das kannst, dann solltest du auch grundsätzlich mit JSON in Python umgehen können. Der Umgang mit Listen und Dicts ist im Python Tutorial und natürlich in der Python Doku erklärt. Beides _musst_ du können, sonst wird das nix mit Python und dir.

Gruß, noisefloor
Benutzeravatar
__blackjack__
User
Beiträge: 14045
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@DeaD_EyE: Natürlich spielt das eine Rolle. Das ist kein Freibrief verbotene Dinge zu tun, nur weil andere die tun. Aber Herr Richter, alle anderen um mich herum haben doch auch geplündert, wird in der Regel nicht funktionieren. Und auch nicht-wissen schützt nicht.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
nezzcarth
User
Beiträge: 1762
Registriert: Samstag 16. April 2011, 12:47

USER0518 hat geschrieben: Mittwoch 29. Januar 2025, 13:57 Wie kann ich nun mir eine solche Message herauspicken, wenn mir dir Message ID bekannt ist ?
Zum Beispiel, in dem du die Daten beim Einlesen gleich in ein Dictionary packst, bei dem die ID der Schlüssel und der Record der Value ist.
Für flexiblere Abfragen siehe die Vorschläge von __blackjack__.
DeaD_EyE hat geschrieben: Mittwoch 29. Januar 2025, 18:35 Eine 490 MiB große JSON-Datei ist echt übertrieben.
Ich habe regelmäßig mit noch deutlich größeren JSON-Dateien zu tun. Ich tröste mich damit, dass sie als XML, wie sie früher oft kamen, noch größer wären. Alles kein Problem mit den richtigen Werkzeugen und Methoden. Allerdings muss ich auch sagen, wenn man – wie das hier wirkt – eh eine gleichförmige Struktur hat mit einer Liste als oberstem Element, in der dann die einzelnen Datensätze als Mapping stehen, könnte man auch JSON-Lines nehmen, was bei solchen Mengen angenehmer zu verarbeiten ist.
Benutzeravatar
DeaD_EyE
User
Beiträge: 1238
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Ich hab das manchmal manuell gemacht. Erst den Datentyp anzeigen und wenn es eine Liste ist, das erste Element untersuchen und dann die Dicts/Listen durchgehen. Aber die Tools zur Analyse der Struktur sind sicherlich besser darin.

https://jless.io/ (sieht vielversprechend aus)
https://dadroit.com/download/ (proprietär, nicht kommerzielle Nutzung erlaubt)
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Antworten