Daten mit Python an eine JSON-Datei anhängen

Mehvish Ashiq 21 Juni 2023
  1. Daten mit Python an eine JSON-Datei anhängen
  2. Verwenden Sie ein list-Python-Objekt, um Daten in einer JSON-Datei zu aktualisieren
  3. Verwenden Sie ein Python-dict-Objekt, um Daten in einer JSON-Datei zu aktualisieren
Daten mit Python an eine JSON-Datei anhängen

Benutzer werden von den meisten Webanwendungen und Rest-APIs mit Daten im JSON-Format versorgt, da es in Webanwendungen weit verbreitet und leicht verständlich ist. Wenn Sie also Python in Webanwendungen verwenden, könnten Sie daran interessiert sein, Daten mit Python an eine JSON-Datei anzuhängen.

In diesem Tutorial werden Möglichkeiten zum Anhängen von Daten an eine JSON-Datei mit Python aufgezeigt.

Daten mit Python an eine JSON-Datei anhängen

Wir können eine JSON-Datei nicht direkt mit Python anhängen, aber wir können sie überschreiben. Wie fügt man also Daten in eine JSON-Datei ein?

Dazu müssen wir die folgenden Schritte ausführen:

  • Lesen Sie die JSON-Datei in einem Python-dict- oder list-Objekt.
  • Hängen Sie das dict- oder list-Objekt an.
  • Schreiben Sie das aktualisierte dict- oder list-Objekt in die ursprüngliche JSON-Datei (hier wird der vorherige Inhalt mit dem aktualisierten Inhalt überschrieben).

Unsere JSON-Datei (data.json) enthält die unten angegebenen Daten, die wir in den kommenden Codebeispielen in diesem Artikel verwenden werden.

Inhalt der JSON-Datei (gespeichert in der Datei data.json):

{
    "student_details":[
        {
            "student_first_name": "Mehvish",
            "student_last_name": "Ashiq",
            "student_email": "mehvish@gmail.com"
        },
        {
            "student_first_name": "Tahir",
            "student_last_name": "Raza",
            "student_email": "tahir@yahoo.com"
        }

    ]
}

Verwenden Sie ein list-Python-Objekt, um Daten in einer JSON-Datei zu aktualisieren

Angenommen, wir möchten den folgenden Schüler in der Datei data.json hinzufügen:

{
    "student_first_name": "Aftab",
    "student_last_name": "Raza",
    "student_email": "Aftab@gmail.com"
}

Lassen Sie uns dazu den folgenden Code ausführen.

Beispielcode (gespeichert in demo.py):

import json


def write_json(new_student, filename="./data.json"):
    with open(filename, "r+") as file:
        file_content = json.load(file)
        file_content["student_details"].append(new_student)
        file.seek(0)
        json.dump(file_content, file, indent=4)


new_student = {
    "student_first_name": "Aftab",
    "student_last_name": "Raza",
    "student_email": "Aftab@gmail.com",
}

write_json(new_student)

Zuerst importieren wir das json-Modul, um mit JSON-Dateien zu arbeiten. Als nächstes schreiben wir eine write_json()-Funktion, die zwei Parameter akzeptiert: den new_student mit den Studentendetails, die wir anhängen möchten, und den filename (wir können hier auch den Dateipfad angeben).

Innerhalb dieser Funktion verwenden wir die Methode open(), um die angegebene Datei im Lesemodus zu öffnen. Dann verwenden wir json.loads(), um den JSON-String (Laden der vorhandenen Daten) in file_content zu parsen.

Als nächstes verwenden wir das Listenobjekt, um .append() zu verwenden, um den file_content mit dem new_student in den student_details zu verbinden. Das file.seek(0) setzt die aktuelle Position der Datei auf offset.

Schließlich verwenden wir .dump(), um es wieder in JSON zu konvertieren.

Nun führen wir den obigen Code mit python demo.py wie folgt aus:

PS E:\Code> python demo.py

Unsere data.json-Datei wird bei erfolgreicher Ausführung des obigen Programms überschrieben. Siehe die aktualisierte data.json-Datei unten.

AUSGABE (Dateiinhalt von data.json):

{
    "student_details": [
        {
            "student_first_name": "Mehvish",
            "student_last_name": "Ashiq",
            "student_email": "mehvish@gmail.com"
        },
        {
            "student_first_name": "Tahir",
            "student_last_name": "Raza",
            "student_email": "tahir@yahoo.com"
        },
        {
            "student_first_name": "Aftab",
            "student_last_name": "Raza",
            "student_email": "Aftab@gmail.com"
        }
    ]
}

Verwenden Sie ein Python-dict-Objekt, um Daten in einer JSON-Datei zu aktualisieren

Nehmen wir nun an, wir möchten eine weitere Eigenschaft hinzufügen, "Abschnitt": "A" für alle Schüler. Das können wir wie folgt machen:

Beispielcode (gespeichert in der Datei demo.py):

import json


def write_json(section, filename="./data.json"):
    with open(filename, "r+") as file:
        file_content = json.load(file)
        file_content.update(section)
        file.seek(0)
        json.dump(file_content, file, indent=4)


section = {"section": "A"}

write_json(section)

Dieses Beispiel ähnelt dem letzten, bei dem das Objekt list verwendet wurde, um Daten in einer JSON-Datei zu aktualisieren, mit Ausnahme eines Unterschieds. Hier verwenden wir ein dict-Objekt, um die .update()-Methode zu verwenden, die ein dict (Wörterbuch) mit Elementen aus einem anderen dict-Objekt oder aus einem iterierbaren Schlüssel-Wert-Paar aktualisiert.

Wir werden den folgenden Inhalt in der Datei data.json haben, nachdem wir diese Programmierung mit dem Befehl python demo.py ausgeführt haben.

AUSGABE (gespeichert in der Datei data.json):

{
    "student_details": [
        {
            "student_first_name": "Mehvish",
            "student_last_name": "Ashiq",
            "student_email": "mehvish@gmail.com"
        },
        {
            "student_first_name": "Tahir",
            "student_last_name": "Raza",
            "student_email": "tahir@yahoo.com"
        },
        {
            "student_first_name": "Aftab",
            "student_last_name": "Raza",
            "student_email": "Aftab@gmail.com"
        }
    ],
    "section": "A"
}
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

Verwandter Artikel - Python JSON