Geekflare wird von unserem Publikum unterstützt. Wir können Affiliate-Provisionen durch den Kauf von Links auf dieser Website verdienen.
Teilen:

So analysieren Sie JSON in Python

json-Daten in Python
Invicti Web Application Security Scanner – die einzige Lösung, die eine automatische Verifizierung von Schwachstellen mit Proof-Based Scanning™ bietet.

JSON ist ein beliebtes Format für den Datenaustausch. Python wird mit einem eingebauten JSON Modul zum Analysieren und Arbeiten mit JSON-Daten. Und dieses Tutorial wird Ihnen alles über die Arbeit mit JSON in Python beibringen.

Am Ende dieses Tutorials haben Sie Folgendes gelernt:

  • die Grundlagen von JSON,
  • wie man JSON-Strings in Python analysiert und erstellt, und
  • wie man in Python aus JSON-Dateien liest und in sie schreibt.

Fangen wir an!⏳

What is JSON?

JSON steht für JavaSKript OObjekt Notation, und es ist ein textbasiert Format für den Datenaustausch. Obwohl JSON zunächst inspiriert ist Durch JavaScript-Objekte werden fast alle Programmiersprachen unterstützt Arbeiten mit JSON.

Wenn Sie jemals mit APIs gearbeitet oder Konfigurationsdateien durchgelesen haben, sind Sie wahrscheinlich auf JSON gestoßen.

📑 Sie senden und empfangen Daten in JSON, wenn Sie APIs abfragen. Und auch bei der Client-Server-Kommunikation in Softwareanwendungen wird JSON häufig eingesetzt. Darüber hinaus können Sie JSON auch für die allgemeine Datenspeicherung verwenden.

Das Format von JSON ist dem eines Python-Wörterbuchs sehr ähnlich. Wörterbücher sind leistungsstarke integrierte Datenstrukturen in Python, in denen Daten gespeichert werden Schlüssel-Wert-Paare.

Bevor wir weitermachen, hier sind einige Punkte, die es wert sind, beachtet zu werden:

  • In Python wird ein JSON-Objekt als Wörterbuch gespeichert.
  • Ein Array in JSON wird als Python-Liste.
  • In JSON werden die booleschen Werte als bezeichnet true und false. In Python werden diese in Booleans umgewandelt True und False.

Weitere Einzelheiten zu den Datentypen, die von JSON nach Python übersetzt werden, finden Sie in der Dokumentation hier .

Da die json Modul ist Teil der Python-Standardbibliothek, Sie müssen es nicht installieren. Sie können wie folgt in Ihr aktuelles Verzeichnis importieren:

import json

How to Load a JSON String in Python

Die allgemeine Syntax zum Laden einer JSON-Zeichenfolge in Python lautet:

<dict_obj> = json.loads(<json_str>)

Hier

  • <dict_obj> ist das Python-Wörterbuch, in das Sie die JSON-Zeichenfolge laden möchten,
  • <json_str> ist eine beliebige gültige JSON-Zeichenfolge.

Dies lädt die <json_str> in das Python-Wörterbuch <dict_obj>.

Lassen Sie uns ein Beispiel codieren. Hier json_str ist ein JSON-String.

json_str = '''
{
    "books": [
        {
            "title": "The Wind in the Willows",
            "author": "Kenneth Grahame",
            "year": "1908"
        },
        {
            "title": "To the Lighthouse",
            "author": "Virginia Woolf",
            "year": "1927"
        }
    ]
}
'''

Und das folgende Code-Snippet zeigt, wie Sie den JSON-String laden können json_str in ein Python-Wörterbuch mit der loads() Methode. Sie können die integrierte verwenden type() Funktion, um dies zu überprüfen py_dict ist ein Python-Wörterbuch.

py_dict = json.loads(json_str)

type(py_dict)

# Output: dict

print(py_dict)

# Output
{'books': [{'title': 'The Wind in the Willows', 
'author': 'Kenneth Grahame', 'year': '1908'}, 
{'title': 'To the Lighthouse', 'author': 'Virginia Woolf', 'year': '1927'}]}

Wie im obigen Code gezeigt, sind alle Felder in der JSON-Zeichenfolge Schlüssel-Wert-Paare py_dict.

How to Create JSON Strings in Python

Nehmen wir an, Sie haben ein Python-Wörterbuch. Wie erstellt man daraus einen JSON-String?

Sie können es tun, indem Sie die dumps() Methode mit dieser Syntax:

<json_str> = json.dumps(<dict_obj>)

Hier

  • <dict_obj> ist das Python-Wörterbuch, aus dem Sie die JSON-Zeichenfolge erstellen möchten,
  • <json_str> ist die resultierende JSON-Zeichenfolge.

So dumps() Methode Dumps <dict_obj> in einen JSON-String <json_str>.

Zu unserem bestehenden Python-Wörterbuch py_dict. Lassen Sie uns einen neuen Schlüssel hinzufügen "movies". Sie können dies wie im folgenden Code-Snippet tun:

py_dict["movies"] = [{"title":"The Imitation Game","year":"2014",
"lang":"en","watched":True}]

Lassen Sie uns nun das geänderte Wörterbuch in eine neue JSON-Zeichenfolge ausgeben json_str2 Verwendung der dumps() Methode.

json_str2 = json.dumps(py_dict)

print(json_str2)

# Output
{"books": [{"title": "The Wind in the Willows", "author": "Kenneth Grahame", "year": "1908"}, 
{"title": "To the Lighthouse", "author": "Virginia Woolf", "year": "1927"}], 
"movies": [{"title": "The Imitation Game", "year": "2014", "lang": "en", "watched": true}]}

Wie Sie im obigen Beispiel sehen können, ist die ausgegebene JSON-Zeichenfolge ohne die richtige Formatierung schwer zu lesen. Du kannst den ... benutzen optional Parameter indent Einzug hinzuzufügen.

Und Sie können dies durch Einstellung tun indent zu einer Ganzzahl wie 2, wie unten gezeigt:

json_str2 = json.dumps(py_dict, indent = 2)
print(json_str2)

# Output
{
  "books": [
    {
      "title": "The Wind in the Willows",
      "author": "Kenneth Grahame",
      "year": "1908"
    },
    {
      "title": "To the Lighthouse",
      "author": "Virginia Woolf",
      "year": "1927"
    }
  ],
  "movies": [
    {
      "title": "The Imitation Game",
      "year": "2014",
      "lang": "en",
      "watched": true
    }
  ]
}

Beobachten Sie, wie die Ausgabe mit Einrückungen formatiert wurde, und es ist einfach zu befolgen.

Hinweis: 💡 Wenn Sie möchten, dass die Schlüssel in alphabetischer Reihenfolge sortiert werden, können Sie die festlegen sort_keys Parameter True.

Wie Sie im Code-Snippet unten sehen können, wurden die Schlüssel jetzt in alphabetischer Reihenfolge sortiert.

json_str2 = json.dumps(py_dict, indent = 2, sort_keys=True)
print(json_str2)

# Output
{
  "books": [
    {
      "author": "Kenneth Grahame",
      "title": "The Wind in the Willows",
      "year": "1908"
    },
    {
      "author": "Virginia Woolf",
      "title": "To the Lighthouse",
      "year": "1927"
    }
  ],
  "movies": [
    {
      "lang": "en",
      "title": "The Imitation Game",
      "watched": true,
      "year": "2014"
    }
  ]

Und die Schlüssel erscheinen jetzt in alphabetischer Reihenfolge: "author", "title" und "year".

Bisher haben Sie gelernt, wie Sie mit JSON-Strings in Python arbeiten. Im nächsten Abschnitt erfahren Sie, wie Sie mit JSON-Dateien arbeiten.

How to Read a JSON File in Python

Lesen eine JSON-Datei in Python verwenden Sie die folgende Syntax:

json.load(<json-file>) 

# where <json-file> is any valid JSON file.

Beachten Sie, wie wir die verwenden load() Methode und nicht die loads() Methode. loads() lädt a JSON-String, während load() lädt a JSON-Datei.

Sie sollten die Verwendung von Kontextmanagern in Betracht ziehen, wenn Sie mit Dateien in Python arbeiten. Sie können auch versuchen, Dateien wie folgt zu lesen, ohne den Kontextmanager zu verwenden:

my_file = open('students.json','r')

contents = my_file.read()

print(contents)

file.close()

Wenn Sie die Datei nicht schließen, können möglicherweise Ressourcen verschwendet werden.

Allerdings bei der Arbeit mit Kontextmanager, werden die Dateien automatisch geschlossen, sobald die Dateioperationen abgeschlossen sind.

Und Sie können den Kontextmanager verwenden, um Dateien zu lesen, wie unten gezeigt:

with open('students.json','r') as file:   
   data = json.load(file) 
   print(data) 

# Output 

{'students': [{'roll_num': 'cs27', 'name': 'Anna', 'course': 'CS'}, 
{'roll_num': 'ep30', 'name': 'Kate', 'course': 'PHY'}]}

Geben Sie beim Lesen aus einer Datei den Modus als an lesen-angezeigt durch 'r' im obigen Code.

Hinweis: Um einfach durch das aktuelle Verzeichnis navigieren zu können, stellen Sie bitte sicher, dass sich die JSON-Datei im selben Ordner befindet wie main.py, wie im Bild unten gezeigt. Wenn sich Ihre JSON-Datei in einem anderen Ordner befindet, geben Sie unbedingt den Pfad zu der Datei an.

read-json-file-in-python
Lesen Sie die JSON-Datei in Python.

Im nächsten Abschnitt erfahren Sie, wie Sie in eine JSON-Datei schreiben.✍

How to Write to a JSON File in Python

Um in eine vorhandene JSON-Datei zu schreiben oder eine neue JSON-Datei zu erstellen, verwenden Sie die dump() Methode wie gezeigt:

json.dump(<dict_obj>,<json_file>)

# where <dict_obj> is a Python dictionary 

# and <json_file> is the JSON file 

Die obige Syntax gibt also das Wörterbuch aus <dict_obj> in die JSON-Datei <json_file>.

Im vorherigen Abschnitt hatten wir das Wörterbuch py_dict. Lassen Sie uns das jetzt in eine neue JSON-Datei kopieren. Und nennen wir es new_file.json.

Und die folgende Codezelle zeigt, wie Sie die verwenden können dump() Funktion:

with open('new_file.json','w') as file:
  json.dump(py_dict,file)

Hinweis: Öffnen einer Datei im schreiben Modus (w) überschreibt den Inhalt, falls die Datei vorhanden ist. Wenn die Datei nicht vorhanden ist, wird die Datei erstellt.

Nachdem Sie die obige Codezelle ausgeführt haben, sehen Sie, dass eine neue JSON-Datei im aktuellen Arbeitsverzeichnis erstellt wurde. Und Sie können fortfahren und den Inhalt der JSON-Datei untersuchen.

erstelle-json-datei-python
Erstellen Sie eine JSON-Datei in Python

Beim Schreiben in Dateien ist das Hauptziel die Datenspeicherung. Und wenn Sie die Formatierung beibehalten möchten, können Sie auch die verwenden indent und sort_keys Parameter.

Fazit

⏲ ​​Zeit für eine kurze Zusammenfassung.

In diesem Tutorial haben Sie gelernt:

  • die Grundlagen der Verwendung von JSON,
  • wie man das nutzen loads() und load() Methoden zum Lesen von JSON-Zeichenfolgen bzw. JSON-Dateien,
  • wie man das nutzen dumps() und dump() Methoden zum Ausgeben von Python-Wörterbüchern in JSON-Strings bzw. JSON-Dateien.

Ich hoffe, Sie fanden dieses Tutorial hilfreich. Viel Spaß beim Lernen!

Sie können auch anschauen JSON-Tools zum Parsen, Formatieren und Validieren.

Danke an unsere Sponsoren
Weitere großartige Lektüre zum Thema Entwicklung
Treiben Sie Ihr Geschäft an
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti verwendet das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu verifizieren und innerhalb weniger Stunden umsetzbare Ergebnisse zu generieren.
    Versuchen Sie es mit Invicti
  • Web-Scraping, Wohn-Proxy, Proxy-Manager, Web-Unlocker, Suchmaschinen-Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie es mit Brightdata
  • Semrush ist eine All-in-One-Lösung für digitales Marketing mit mehr als 50 Tools in den Bereichen SEO, Social Media und Content-Marketing.
    Versuchen Sie es mit Semrush
  • Intruder ist ein Online-Schwachstellenscanner, der Cyber-Sicherheitslücken in Ihrer Infrastruktur findet, um kostspielige Datenschutzverletzungen zu vermeiden.
    MIT DER INTELLIGENTEN SCHADENKALKULATION VON Intruder