Heim >Backend-Entwicklung >Python-Tutorial >Arbeiten mit JSON -Dateien in Python mit Beispielen

Arbeiten mit JSON -Dateien in Python mit Beispielen

Christopher Nolan
Christopher NolanOriginal
2025-02-16 09:47:09192Durchsuche

Working with JSON Files in Python, with Examples

JSON in Python: Eine umfassende Anleitung

JSON (JavaScript-Objektnotation) ist ein sprachunabhängiges Datenaustauschformat, das häufig zum Übertragen von Daten zwischen Clients und Servern verwendet wird. Python unterstützt JSON durch mehrere Module, darunter "JSON" und "Simplejson" am beliebtesten.

Pythons integriertes "JSON" -Modul bietet Methoden zum Lesen und Schreiben von JSON-Dateien. Mit der Methode "json.load ()" werden JSON -Daten aus einer Datei gelesen, und die Methode "JSON.DUMP ()" wird verwendet, um JSON -Daten in eine Datei zu schreiben.

Python -Objekte können durch den Serialisierungsprozess mit den Methoden "JSON.DUMP ()" oder "JSON.Dumps ()" in JSON -Format konvertiert werden. Stattdessen können JSON -Daten durch einen Deserialisierungsprozess mit den Methoden "json.load ()" oder "json.loads ()" in Python -Objekte zurückgewandelt werden.

Python- und JSON -Datentypen haben Äquivalente. Zum Beispiel entspricht Pythons "Diktat" Jsons "Objekt", während Pythons "Liste" oder "Tupel" Jsons "Array" entspricht. Diese Kartierung erleichtert den Konvertierungsprozess zwischen Python und JSON.

In diesem Tutorial lernen wir, wie man JSON in Python anhand relevanter Beispiele liest, schreibt und analysiert. Wir werden auch gemeinsame Module in Python zum Umgang mit JSON erforschen.

JSON ist ein leichtes Datenaustauschformat. Es ist ein gemeinsames Format zum Übertragen und Empfangen von Daten zwischen Clients und Servern. Die Anwendung und sein Zweck sind jedoch nicht auf die Übertragung von Daten beschränkt. Die Maschine kann JSON -Daten problemlos generieren und analysieren. Das JSON -Akronym steht für JavaScript -Objektnotation, wie der Name schon sagt, eine Untergruppe der JavaScript -Programmiersprache.

JSON ist ein standardisiertes Datenaustauschformat und ist sprachunabhängig. Fast alle Programmiersprachen unterstützen es in irgendeiner Weise. Es hat die folgende Struktur:

  • Es hat eine linke Klammer links und eine rechte Klammer rechts.
  • Es hat eine Reihe von Namen/Wertpaaren.
  • Jeder Name wird durch einen Dickdarm von seinem Wert getrennt ":".
  • Jedes Name/Wert -Paar wird durch ein Komma (,) getrennt.

Folgendes ist ein Fragment eines JSON -Objekts:

<code class="language-json">{
    "name": "Chinedu Obi",
    "age": 24,
    "country": "Nigeria",
    "languages": [
        "Igbo",
        "English",
        "Yoruba"
    ],
    "marital status": "single",
    "employee": true,
    "experience": [
        {
            "title": "Frontend Engineering Intern",
            "company": "Andela"
        },
        {
            "title": "Frontend Engineer",
            "company": "Paystack"
        }
    ]
}</code>

Für die Zwecke zukünftiger Code -Beispiele werden wir davon ausgehen, dass der oben genannte JSON in einer Datei namens Employee.json gespeichert ist.

JSON -Datentyp

Bei der Verwendung eines JSON -Objekts konvertiert Python den JSON -Datentyp in seinen äquivalenten und umgekehrt. Die folgende Tabelle zeigt die Python -Datentypen und deren JSON -Äquivalente.

Python JSON 等效项
dict object
list, tuple array
str string
int, float, long number
True true
False false
None null

Der Unterschied zwischen JSON- und Simplejson -Modulen in Python

Es gibt mehrere Module in Python zum Codieren und Dekodieren von JSON. Die beiden beliebtesten Module sind JSON und Simplejson. Das JSON-Modul ist ein integriertes Paket in der Python Standard Library, sodass wir es direkt verwenden können, ohne es zu installieren.

Das SimpleJson -Modul ist ein externes Python -Modul zum Codieren und Dekodieren von JSON. Es ist ein Open -Source -Paket, das mit Python 2.5 und Python 3.3 rückwärts kompatibel ist. Es ist auch schnell, einfach, korrekt und skalierbar.

SimpleJson wird häufiger mit aktualisierten Optimierungen als JSON aktualisiert, was es schneller macht. Wenn Sie ältere Python unter 2,6 in Ihrem Legacy -Projekt verwenden, ist Simplejson die beste Wahl.

In diesem Tutorial halten wir uns am JSON -Modul fest.

So lesen und schreiben Sie JSON -Dateien in Python

Bei der Programmierung in Python begegnen wir häufig auf das JSON -Datenformat, und es ist wichtig zu verstehen, wie Sie JSON -Daten und -dateien lesen oder schreiben. Hier ist ein Vorverständnis der Dateiverarbeitung in Python, mit dem JSON-Dateien gelesen und geschrieben werden können.

So lesen Sie eine JSON -Datei in Python

Wie bei jeder anderen Leseoperation in Python kann die mit der Anweisung mit der JSON.load () -Methode zum Lesen einer JSON -Datei verwendet werden.

siehe das folgende Code -Beispiel:

<code class="language-json">{
    "name": "Chinedu Obi",
    "age": 24,
    "country": "Nigeria",
    "languages": [
        "Igbo",
        "English",
        "Yoruba"
    ],
    "marital status": "single",
    "employee": true,
    "experience": [
        {
            "title": "Frontend Engineering Intern",
            "company": "Andela"
        },
        {
            "title": "Frontend Engineer",
            "company": "Paystack"
        }
    ]
}</code>
Folgendes ist die Ausgabe des obigen Codes:

<code class="language-python">import json

with open('employee.json', 'r', encoding='utf-8') as file_object:
    employee_dict = json.load(file_object)
    print(employee_dict)</code>
Im obigen Code öffnen wir die Datei "Mitarbeiter.json" im Lesemodus. Die JSON.load () -Methode decodiert die JSON -Daten in ein Python -Wörterbuch, das in der Variablen der Mitarbeiter -Dict -Variable gespeichert ist.

wie man JSON in eine Datei in Python

schreibt

Wir können auch JSON -Daten in Dateien in Python schreiben. Wie bei der Lesevorrichtung verwenden wir die mit Anweisung und die JSON.Dump () -Methode, um JSON -Daten in eine Datei zu schreiben.

Betrachten Sie den folgenden Code -Snippet:

<code>{'name': 'Chinedu Obi', 'age': 24, 'country': 'Nigeria', 'languages': ['Igbo', 'English', 'Yoruba'], 'marital status': 'single', 'employee': True, 'experience': [{'title': 'Frontend Engineering Intern', 'company': 'Andela'}, {'title': 'Frontend Engineer', 'company': 'Paystack'}]}</code>

Hier erstellen wir eine Python -Wörterbuchmutter mit Daten über die fiktive Mutter. Wir öffnen Mutter.json im Schreibmodus. Da es keine solche Datei gibt, wird für uns eine Datei erstellt. Die JSON.DUMP () -Methode codiert das Python -Wörterbuch, das der Muttervariablen als JSON -Äquivalent zugewiesen wurde und in die angegebene Datei geschrieben wird. Nachdem der obige Code ausgeführt wurde, wird er im Root -Verzeichnis unseres Ordners angezeigt, der die Mutter.json -Datei von JSON -Daten enthält.

Wie man ein Python -Wörterbuch in JSON (Serialisierung) umwandelt

Serialisierung ist der Prozess der Konvertierung eines Python -Objekts (in den meisten Fällen ein Wörterbuch) in JSON -formatierte Daten oder Zeichenfolgen. Bei der Serialisierung wird der Python -Typ als JSON -Äquivalent codiert. Das JSON -Modul bietet zwei Methoden - json.dump () und json.dumps () - zum Serialisieren von Python -Objekten in das JSON -Format.

  • json.dump () wird verwendet, um das JSON -Äquivalent eines Python -Objekts in eine Datei zu schreiben.
  • json.dumps () (mit "s") wird verwendet, um Python -Objekte in Saiten im JSON -Format umzuwandeln.

Bitte beachten Sie die folgende Syntax:

<code class="language-python">import json

mother = {
    "name": "Asake Babatunde",
    "age": 28,
    "marital status": "Married",
    "children": ["Ayo", "Tolu", "Simi"],
    "staff": False,
    "next of kin": {"name": "Babatune Lanre", "relationship": "husband"},
}

with open("mother.json", "w", encoding="utf-8") as file_handle:
    json.dump(mother, file_handle, indent=4)</code>
<code class="language-python">json.dump(obj, fp, indent)</code>
Die Methode

json.dump () hat einen Parameter FP, während Json.dumps () nicht.

Einige Parametererklärungen:

  • obj: Ein Python -Objekt, das in JSON -Format serialisiert werden soll.
  • FP: Dateizeiger (Objekt) mit Methoden wie Read () oder Write ().
  • Einzug: Nicht-negative Ganzzahl oder Zeichenfolge, die den Eindrückungsniveau der wunderschön gedruckten JSON-Daten angibt.

Beispiel: Konvertieren Sie Python -Objekte in JSON -Format mit JSON.dump ()

codieren wir das Python -Objekt in äquivalente JSON -formatierte Daten und schreiben Sie es in eine Datei.

Erstens erstellen wir ein Python -Wörterbuch:

<code class="language-json">{
    "name": "Chinedu Obi",
    "age": 24,
    "country": "Nigeria",
    "languages": [
        "Igbo",
        "English",
        "Yoruba"
    ],
    "marital status": "single",
    "employee": true,
    "experience": [
        {
            "title": "Frontend Engineering Intern",
            "company": "Andela"
        },
        {
            "title": "Frontend Engineer",
            "company": "Paystack"
        }
    ]
}</code>

codieren wir unser Wörterbuch als JSON -Daten und schreiben Sie in eine Datei:

<code class="language-python">import json

with open('employee.json', 'r', encoding='utf-8') as file_object:
    employee_dict = json.load(file_object)
    print(employee_dict)</code>

Im obigen Beispiel übergeben wir die Parameter Wörterbuch, Dateizeiger und Einrückung an die JSON.Dump -Methode. Hier ist die Ausgabe unseres Codes. Nach der Ausführung des Codes finden Sie die subjekt.json -Datei, die die erwarteten JSON -Daten enthält

<code>{'name': 'Chinedu Obi', 'age': 24, 'country': 'Nigeria', 'languages': ['Igbo', 'English', 'Yoruba'], 'marital status': 'single', 'employee': True, 'experience': [{'title': 'Frontend Engineering Intern', 'company': 'Andela'}, {'title': 'Frontend Engineer', 'company': 'Paystack'}]}</code>
Unser Ausgang hat einen schönen Ausdruck, da wir einen Einrückungsparameter mit einem Wert von 4 hinzugefügt haben.

Beispiel: Konvertieren Sie Python -Objekte mit JSON.Dumps ()

in das JSON -Format

In diesem Beispiel codieren wir das Python -Objekt als JSON -String. Wir haben schon einmal ein Subjekt -Wörterbuch erstellt, damit wir es hier wiederverwenden können.

Nehmen wir die Methode json.dumps () als Beispiel:

<code class="language-python">import json

mother = {
    "name": "Asake Babatunde",
    "age": 28,
    "marital status": "Married",
    "children": ["Ayo", "Tolu", "Simi"],
    "staff": False,
    "next of kin": {"name": "Babatune Lanre", "relationship": "husband"},
}

with open("mother.json", "w", encoding="utf-8") as file_handle:
    json.dump(mother, file_handle, indent=4)</code>
Folgendes ist die Ausgabe des obigen Codes:

<code class="language-python">json.dump(obj, fp, indent)</code>
Wie bereits erwähnt, wird die Methode json.dumps () verwendet, um Python -Objekte in Zeichenfolgen im JSON -Format umzuwandeln. Wir können aus der Konsole sehen, dass unsere JSON -Daten type str.

Wie man JSON in Python Dictionary (Deserialisierung) umwandelt

Die Deserialisierung von JSON besteht darin, ein JSON -Objekt in ein äquivalentes Python -Objekt oder Python -Typ zu dekodieren. Wir können zwei Methoden des JSON -Moduls - json.load () und jSON.Loads () - verwenden, um jSON -formatierte Daten in Python -Objekte umzuwandeln.

    json.load () wird verwendet, um jSON -formatierte Daten aus einer Datei zu lesen.
  • json.loads () (mit "s") wird verwendet, um JSON -Strings in Python -Wörterbücher zu analysieren.
Bitte beachten Sie die folgende Syntax:

<code class="language-python">json.dumps(obj, indent)</code>
<code class="language-python">import json

subject = {
    "name": "Biology",
    "teacher": {"name": "Nana Ama", "sex": "female"},
    "students_size": 24,
    "elective": True,
    "lesson days": ["Tuesday", "Friday"],
}</code>
json.dump () hat einen Parameter FP und JSON.Dumps () hat einen Parameter s. Andere Parameter bleiben unverändert.

Einige Parametererklärungen:

    FP: Dateizeiger (Objekt) mit Methoden wie Read () oder Write ().
  • S: Eine BR-, Bytes- oder Bytearray -Instanz mit einem JSON -Dokument.
Beispiel: Konvertieren Sie ein JSON -Objekt in ein Python -Objekt mit JSON.load ()

Folgendes ist der Inhalt einer neuen JSON -Datei namens students.json:

<code class="language-python">with open('subject.json', 'w', encoding='utf-8') as file_handle:
    json.dump(subject, file_handle, indent=4)</code>
In diesem Beispiel werden wir die JSON -Daten aus der Datei students.json zu einem Python -Objekt dekodieren:

<code class="language-json">{
    "name": "Biology",
    "teacher": {
        "name": "Nana Ama",
        "sex": "female"
    },
    "students_size": 24,
    "elective": true,
    "lesson days": [
        "Tuesday",
        "Friday"
    ]
}</code>
Folgendes ist die Ausgabe des obigen Codes:

<code class="language-python">json_data = json.dumps(subject, indent=4)
print(json_data)
print(type(json_data))</code>
Im obigen Code -Snippet wird eine JSON -Datei, die die Schülerliste enthält, analysiert. JSON -Daten aus der Datei File_handle werden an die Methode json.load () übergeben, die sie in eine Liste von Python -Wörterbüchern entschlüsselt. Drucken Sie dann das Listenelement in die Konsole.

Beispiel: Konvertieren Sie ein JSON -Objekt in ein Python -Wörterbuch mit JSON.Loads ()

In diesem Beispiel dekodieren wir JSON -Daten aus dem API -Endpunkt des JSONPLAPHURDERS. Bevor Sie dieses Beispiel fortsetzen, sollte das Anforderungsmodul installiert werden:

<code class="language-json">{
    "name": "Chinedu Obi",
    "age": 24,
    "country": "Nigeria",
    "languages": [
        "Igbo",
        "English",
        "Yoruba"
    ],
    "marital status": "single",
    "employee": true,
    "experience": [
        {
            "title": "Frontend Engineering Intern",
            "company": "Andela"
        },
        {
            "title": "Frontend Engineer",
            "company": "Paystack"
        }
    ]
}</code>

Folgendes ist die Ausgabe des obigen Codes:

<code class="language-python">import json

with open('employee.json', 'r', encoding='utf-8') as file_object:
    employee_dict = json.load(file_object)
    print(employee_dict)</code>

In dem obigen Python -Code erhalten wir die Antwort vom Endpunkt, der die Zeichenfolge von JSON -Formatierungen zurückgibt. Wir übergeben die Antwort als Parameter an die Methode json.loads () und dekodieren sie in ein Python -Wörterbuch.

Schlussfolgerung

In der modernen Webentwicklung ist JSON das tatsächliche Format zum Austausch von Daten zwischen einem Server und einer Webanwendung. Heutzutage geben REST -API -Endpunkte Daten im JSON -Format zurück. Daher ist es wichtig zu verstehen, wie JSON verwendet werden kann.

Python hat Module wie JSON und Simplejson zum Lesen, Schreiben und Parsen von JSON. Das JSON -Modul ist mit der Python Standard Library versehen, und SimpleJson ist ein externes Paket, das vor der Verwendung installiert werden muss.

Wenn wir eine erholsame API in Python erstellen oder eine externe API in unserem Projekt verwenden, müssen wir häufig Python -Objekte serialisieren, um JSON zu sein und sie zurück nach Python zu deaktivieren. Die in diesem Artikel gezeigten Methoden werden von vielen beliebten Projekten verwendet. Die Schritte sind normalerweise gleich.

(Der Code für dieses Tutorial finden Sie in GitHub.)

FAQs über JSON in Python (FAQ)

Wie kann ich JSON in Python analysieren?

Aufgrund des JSON -Moduls ist das Parsen von JSON in Python ein einfacher Prozess. Sie können JSON -Zeichenfolgen mit der Funktion json.loads () analysieren. Hier ist ein Beispiel:

<code>{'name': 'Chinedu Obi', 'age': 24, 'country': 'Nigeria', 'languages': ['Igbo', 'English', 'Yoruba'], 'marital status': 'single', 'employee': True, 'experience': [{'title': 'Frontend Engineering Intern', 'company': 'Andela'}, {'title': 'Frontend Engineer', 'company': 'Paystack'}]}</code>

In diesem Code konvertiert JSON.LOADS () die JSON -String in ein Python -Wörterbuch, und Sie können dann wie Sie mit jedem anderen Wörterbuch interagieren.

Wie kann man ein Python -Objekt in JSON konvertieren?

Das

JSON -Modul liefert die Funktion json.dumps (), die Python -Objekte in JSON -Zeichenfolgen umwandelt. Hier ist ein Beispiel:

<code class="language-python">import json

mother = {
    "name": "Asake Babatunde",
    "age": 28,
    "marital status": "Married",
    "children": ["Ayo", "Tolu", "Simi"],
    "staff": False,
    "next of kin": {"name": "Babatune Lanre", "relationship": "husband"},
}

with open("mother.json", "w", encoding="utf-8") as file_handle:
    json.dump(mother, file_handle, indent=4)</code>

In diesem Code konvertiert JSON.Dumps () das Python -Wörterbuch in eine JSON -String.

Wie kann ich JSON aus einer Datei in Python lesen?

Sie können die Funktion json.load () verwenden, um JSON -Daten aus einer Datei zu lesen. Hier ist ein Beispiel:

<code class="language-python">json.dump(obj, fp, indent)</code>

In diesem Code liest JSON.load () die Datei und konvertiert die JSON -Daten in ein Python -Objekt.

Wie schreibe ich JSON in eine Datei in Python?

Sie können die Funktion json.dump () verwenden, um JSON -Daten in eine Datei zu schreiben. Hier ist ein Beispiel:

<code class="language-python">json.dumps(obj, indent)</code>

in diesem Code schreibt json.dump () ein Python -Objekt in eine Datei als JSON -Daten.

Wie kann JSON in Python wunderbar drucken?

Die Funktion

json.dumps () bietet die Möglichkeit, JSON wunderbar zu drucken. Hier ist ein Beispiel:

<code class="language-python">import json

subject = {
    "name": "Biology",
    "teacher": {"name": "Nana Ama", "sex": "female"},
    "students_size": 24,
    "elective": True,
    "lesson days": ["Tuesday", "Friday"],
}</code>

In diesem Code gibt der Einrückungsparameter an, wie viele Räume als Einrückung verwendet werden sollen, was das Lesen des Ausgangs erleichtert.

Wie kann man mit komplexen Python -Objekten in JSON umgehen?

Das JSON -Modul kann nur standardmäßig einfache Python -Objekte verarbeiten. Für komplexe Objekte wie benutzerdefinierte Klassen müssen Sie eine Funktion bereitstellen, um zu sagen, wie die Objekte serialisieren. Hier ist ein Beispiel:

<code class="language-json">{
    "name": "Chinedu Obi",
    "age": 24,
    "country": "Nigeria",
    "languages": [
        "Igbo",
        "English",
        "Yoruba"
    ],
    "marital status": "single",
    "employee": true,
    "experience": [
        {
            "title": "Frontend Engineering Intern",
            "company": "Andela"
        },
        {
            "title": "Frontend Engineer",
            "company": "Paystack"
        }
    ]
}</code>

In diesem Code wird die Funktion codode_person verwendet, um Personenobjekte in serialisierbare Formate umzuwandeln.

Wie kann ich JSON mit unbekannter Struktur analysieren?

Wenn Sie die Struktur von JSON -Daten im Voraus nicht kennen, können Sie sie trotzdem in ein Python -Objekt analysieren und sie untersuchen. Hier ist ein Beispiel:

<code class="language-python">import json

with open('employee.json', 'r', encoding='utf-8') as file_object:
    employee_dict = json.load(file_object)
    print(employee_dict)</code>

In diesem Code konvertiert JSON.Loads () die JSON -String in ein Python -Wörterbuch, das Sie dann wiederholen können, um den Inhalt zu untersuchen.

Wie kann man große JSON -Dateien in Python umgehen?

Für große JSON -Dateien können Sie das IJSON -Paket verwenden, mit dem Sie JSON -Daten streamen können, anstatt alle Daten gleichzeitig in Speicher zu laden. Hier ist ein Beispiel:

<code>{'name': 'Chinedu Obi', 'age': 24, 'country': 'Nigeria', 'languages': ['Igbo', 'English', 'Yoruba'], 'marital status': 'single', 'employee': True, 'experience': [{'title': 'Frontend Engineering Intern', 'company': 'Andela'}, {'title': 'Frontend Engineer', 'company': 'Paystack'}]}</code>

In diesem Code generiert ijson.items () einen Objektstrom aus JSON -Daten, über den Sie dann wiederholen können.

Wie kann man JSON -Fehler in Python umgehen?

Wenn das JSON -Modul auf einen ungültigen JSON trifft, erhöht es einen jSondeCodeError. Sie können diesen Fehler fangen und ordnungsgemäß umgehen. Hier ist ein Beispiel:

<code class="language-python">import json

mother = {
    "name": "Asake Babatunde",
    "age": 28,
    "marital status": "Married",
    "children": ["Ayo", "Tolu", "Simi"],
    "staff": False,
    "next of kin": {"name": "Babatune Lanre", "relationship": "husband"},
}

with open("mother.json", "w", encoding="utf-8") as file_handle:
    json.dump(mother, file_handle, indent=4)</code>

In diesem Code fängt der Versuch/außer Block den jSondeCodeError und druckt die Fehlermeldung aus.

Wie kann ich JSON mit HTTP -Anfragen in Python verwenden?

Die Bibliothek

fordert die Anforderungen für die Anforderung von HTTP -Anforderungen und Verarbeitung von JSON -Antworten mithilfe von JSON -Daten einfach. Hier ist ein Beispiel:

<code class="language-python">json.dump(obj, fp, indent)</code>

In diesem Code sendet Answerte.

Das obige ist der detaillierte Inhalt vonArbeiten mit JSON -Dateien in Python mit Beispielen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn