Analysieren Sie das JSON-Array von Objekten in Python

Zeeshan Afridi 21 Juni 2023
  1. JavaScript-Objektnotation
  2. JSON-Objekte in Python
  3. Analysieren Sie das JSON-Array von Objekten in Python
Analysieren Sie das JSON-Array von Objekten in Python

Da Browser JSON-Objekte schnell parsen können, helfen sie bei der Datenübertragung zwischen einem Client und einem Server. In diesem Artikel wird beschrieben, wie Sie JSON-Daten mit dem JSON-Modul von Python übertragen und empfangen.

JavaScript-Objektnotation

JSON (JavaScript Object Notation) ist eine Syntax für den Datenaustausch, die von Menschen einfach zu lesen und zu schreiben ist, von Computern einfach zu parsen und zu produzieren und auch Daten zu speichern.

Es ist ein sprachunabhängiges Volltextformat. Darüber hinaus enthält Python eine Bibliothek namens json, die wir verwenden können, um mit JSON-Daten zu interagieren.

Die Syntax von JSON wird als Teil der JavaScript-Syntax angesehen, die auch name und Wert umfasst, da name in der Darstellung von Daten ein Doppelpunkt (:) vorangestellt ist und Name:Wert-Paare getrennt werden durch Komma.

Objekte stehen in geschweiften Klammern, während Array-Elemente in eckigen Klammern stehen, wo ein Komma jeden Wert trennt. Python benötigt etwas JSON, mit dem Sie arbeiten können, bevor Sie mit dem Parsen von JSON beginnen.

Es gibt ein paar Dinge, die wir zunächst einrichten müssen. Erstellen Sie zuerst eine Python-Datei, die den Code für diese Übungen enthält. Importieren Sie dann das JSON-Modul in der Datei.

JSON-Objekte in Python

Da Browser JSON-Objekte schnell parsen können, helfen sie bei der Datenübertragung zwischen einem Client und einem Server. Strings, Ganzzahlen (floats oder ints), boolesche Werte, Listen, null oder ein anderes JSON-Objekt sind akzeptable Werte für JSON-Objektschlüssel.

Hier im folgenden Beispiel wird ein Objekt json_string erstellt, das von einem Wörterbuch gefüllt wird, die Daten im Objekt werden mit der Methode json.load() analysiert und dann die in der Ausgabe angezeigten Daten gedruckt.

Beispielcode:

import json

json_string = """
{
    "Student": {
        "ID" : "3",
        "name": "kelvin",
        "Group": "A",
        "Program" : "BSSE"
    }
}
"""
data = json.loads(json_string)
print(data)

Ausgang:

{'Student': {'ID': '3', 'name': 'kelvin', 'Group': 'A', 'Program': 'BSSE'}}

Analysieren Sie das JSON-Array von Objekten in Python

Die Struktur von JSON-Arrays ist identisch mit der von Python-Klammerlisten. Sie können verschachtelte Arrays und die gleichen Datentypen wie die JSON-Objektfeldwerte enthalten. Verwenden Sie die Funktion json.loads() des integrierten Pakets json, um einen JSON-String in ein Python-Objekt umzuwandeln.

Der JSON-Datenstring wird von der Funktion json.loads() geparst, die dann ein Python-Wörterbuch mit allen Daten aus dem JSON bereitstellt. Sie können geparste Daten aus diesem Python-Wörterbuch erhalten, indem Sie Namen oder Indizes verwenden, um auf Objekte zu verweisen.

Wir können das Wörterbuch auch auf verschachtelte JSON-Elemente untersuchen. Verwenden Sie die zugehörige Methode json.load(), um eine JSON-Datei (ohne das s) zu parsen. Wir haben json.loads zum Analysieren der Werte im Array im folgenden Beispiel verwendet.

Beispielcode:

import json

json_string = """
{
    "Student": {
        "ID" : "3",
        "name": "kelvin",
        "Group": "A",
        "Program" : "BSSE",

        "cars": [
            {"model": "BMW 330e", "mpg": 143},
            {"model": "Rolls-Royce Phantom EWB", "mpg": 18}
        ]
    }
}
"""
data = json.loads(json_string)
print(data)

Ausgang:

{'Student': {'ID': '3', 'name': 'kelvin', 'Group': 'A', 'Program': 'BSSE', 'cars': [{'model': 'BMW 330e', 'mpg': 143}, {'model': 'Rolls-Royce Phantom EWB', 'mpg': 18}]}}

Dieses Beispiel wandelt ein JSON-Array über den JSON Decoder in einen Python-Array-Datentyp um. Durch die Verwendung seines Index in einem Python-Objekt kann ein Element aus einem JSON-Array abgerufen werden.

Beispielcode:

import json

json_str = (
    """
{
  "Orders": [
    {"Id": 151},
    {"Id": 120},
    {"Id": 131},
    {"Id": 114}
  ]
}
"""
    ""
)
data = json.loads(json_str)

order_1_id = data["Orders"][0]["Id"]
order_2_id = data["Orders"][1]["Id"]
order_3_id = data["Orders"][0]["Id"]
order_4_id = data["Orders"][1]["Id"]
total = len(data["Orders"])

print(f"Order #1: {order_1_id}, Order #2: {order_2_id}, Total Orders: {total}")

Ausgang:

Order #1: 151, Order #2: 120, Total Orders: 4
Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn