Tutorials  /  Python

Python JSONPath Beispiele

Ccentron Redaktion · Februar 2024 ·3 Min. Lesezeit ·Python, Tutorial

JSONPath ist eine Ausdruckssprache zum Parsen von JSON-Daten. Sie ist sehr ähnlich zur XPath-Ausdruckssprache zum Parsen von XML-Daten. Die Idee ist, die JSON-Daten zu parsen und den gewünschten Wert zu erhalten. Dies ist speichereffizienter, da wir nicht die gesamten JSON-Daten lesen müssen.

Python JSONPath Bibliotheken

Es gibt viele JSONPath-Bibliotheken in Python.

  • jsonpath: Ein Port der Perl- und JavaScript-Versionen von JSONPath.
  • jsonpath-rw: Die komplette Python-Implementierung der JSONPath-Ausdrücke. Die JSONPath-Ausdrücke sind erstklassige Objekte, leicht zu analysieren, transformieren, parsen, drucken und erweitern. Das Modul jsonpath-rw-ext bietet einige zusätzliche Erweiterungen, um seine Funktionalitäten zu erweitern.
  • jsonpath-ng: Die endgültige Implementierung von JSONPath, die standardkonform sein soll, einschließlich arithmetischer und binärer Vergleichsoperatoren. Diese Bibliothek vereint die Module jsonpath-rw und jsonpath-rw-ext und erweitert sie weiter.
VM

Passende Infrastruktur bei centron

Skripte und Dienste brauchen irgendwann eine Umgebung, die durchläuft: ccloud³ VMs ab 3,12 € im Monat, stundengenau abgerechnet. Cloud Server mieten →

Welche Python JSONPath-Bibliothek verwenden?

Das Modul jsonpath-ng ist das umfassendste und rein in Python geschrieben. Es unterstützt sowohl Python 2 als auch Python 3. Daher werden wir dieses Modul für Python JSONPath-Beispiele verwenden.

Installation des jsonpath-ng Moduls

Wir können das jsonpath-ng Modul mit PIP installieren.

Console
$ pip3.7 install jsonpath-ng

Ein einfaches JSON-Datum mit JSONPath parsen

Lassen Sie uns ein einfaches Beispiel betrachten, um die JSON-Daten zu parsen und den erforderlichen Attributwert zu erhalten.

Python
import json
from jsonpath_ng import jsonpath, parse
json_string = '{"id":1, "name":"Pankaj"}'
json_data = json.loads(json_string)
jsonpath_expression = parse('$.id')
match = jsonpath_expression.find(json_data)
print(match)
print("id value is", match[0].value)

Output:

Code
[DatumInContext(value=1, path=Fields('id'), context=DatumInContext(value={'id': 1, 'name': 'Pankaj'}, path=Root(), context=None))]
id value is 1

Eine Liste mit JSONPath-Ausdruck parsen

Der JSON-Schlüssel kann eine Liste von Werten enthalten. Wir können den JSONPath-Ausdruck verwenden, um die Liste zu parsen und die Liste der Werte zu erhalten. Nehmen wir an, wir haben eine JSON-Datei „db.json“ mit folgendem Inhalt.

JSON
{"employees": [
{
"id": 1,
"name": "Pankaj",
"salary": "10000"
},
{
"name": "David",
"salary": "5000",
"id": 2
       }
   ]
}

Wir möchten diese JSON-Datei parsen und die Liste der Mitarbeiter-IDs erhalten. Wir können JSONPath-Ausdrücke verwenden, um diese Daten sehr einfach zu erhalten.

Python
import json
from jsonpath_ng import jsonpath, parse
with open("db.json", 'r') as json_file:
json_data = json.load(json_file)
print(json_data)
jsonpath_expression = parse('employees[*].id')
for match in jsonpath_expression.find(json_data):
print(f'Employee id: {match.value}')

Output:

Code
{'employees': [{'id': 1, 'name': 'Pankaj', 'salary': '10000'}, {'name': 'David', 'salary': '5000', 'id': 2}]}
Employee id: 1
Employee id: 2

Wenn Sie die Daten in eine Liste bekommen möchten, können Sie das Python List Comprehension verwenden.

Python
emp_ids_list = [match.value for match in jsonpath_expression.find(json_data)]
print(emp_ids_list) # [1, 2]

Fazit

JSONPath bietet uns eine einfache Möglichkeit, die JSON-Daten zu parsen und spezifische Werte zu extrahieren. Es ist sehr nützlich, wenn die JSON-Daten groß sind und wir nur an einigen der Werte interessiert sind.

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie Python
Teilen
Noch offene Fragen?

Unser Team hilft Ihnen bei Ihrem konkreten Setup weiter – von Menschen, die die Plattform selbst betreiben.

War dieses Tutorial hilfreich?

Ihre Antwort wird anonym gespeichert und hilft uns, die Tutorials zu verbessern.

Kommentare

Noch keine Kommentare – stellen Sie die erste Frage zu diesem Tutorial.

Zum Kommentieren anmelden

Kommentare stehen centron-Kunden offen. Melden Sie sich in Ihrem Konto an, um eine Frage zu diesem Tutorial zu stellen.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren