Python Vergleichen Sie mehrstufige JSON-Objekte mit JSON Diff
- Vergleichen Sie mehrstufige JSON-Objekte in Python
- Verwenden Sie den Gleichheitsoperator, um mehrstufige JSON-Objekte in Python zu vergleichen
-
Verwenden Sie
jsondiff
, um mehrstufige JSON-Objekte in Python zu vergleichen
Dieser Artikel soll zeigen, wie wir zwei JSON-Objekte mit mehreren Ebenen vergleichen und feststellen können, ob sie identisch sind.
Vergleichen Sie mehrstufige JSON-Objekte in Python
JSON-Objekte, kurz für JavaScript Object Notation, werden hauptsächlich zum Austausch von Daten verwendet und gelten allgemein als sehr leichtgewichtig. Einer der Hauptvorteile besteht darin, dass es von Menschen und Maschinen leicht verstanden werden kann – wie in einer einfachen Analyse, wodurch das Gerät wertvolle Informationen extrahieren kann.
Aufgrund seiner häufigen Verwendung müssen wir möglicherweise zwei Objekte aus irgendeinem Grund vergleichen. Dies kann der Überprüfung dienen, ob deren Inhalt identisch ist, oder zu einem anderen Zweck.
Betrachten Sie den folgenden Code:
obj1 = {
"countries": [
{
"name": "Great Britian",
"cities": [{"name": "Manchester"}, {"name": "London"}],
}
]
}
obj2 = {"countries": [{"name": "Great Britian", "cities": [{"name": "London"}]}]}
Das Code-Snippet zeigt, dass wir zwei JSON-Objekte haben, die Informationen über Länder und ihre Städte speichern. Eine interessante Sache, die hier zu beachten ist, ist, dass sie mehrstufig sind, was bedeutet, dass die Objekte mehr JSON-Objekte enthalten, die darin verschachtelt sind.
Verwenden Sie den Gleichheitsoperator, um mehrstufige JSON-Objekte in Python zu vergleichen
Bevor Sie sich mit Bibliotheken von Drittanbietern befassen, prüfen Sie am besten, ob unsere Aufgabe über die Standard-Python-Funktionen machbar ist. Glücklicherweise funktioniert die Gleichheit für unseren Anwendungsfall genauso gut.
Wenn Sie jedoch mehr Kontrolle über Variablen benötigen, z. B. zum Filtern von Daten oder zum Suchen nach bestimmten Änderungen, müssen Sie möglicherweise eine Bibliothek eines Drittanbieters verwenden, da der Gleichheitsoperator nicht so viel Flexibilität bietet, wie Sie möglicherweise benötigen. Für einfachere Fälle ist die Verwendung des Gleichheitsoperators mehr als ausreichend.
Betrachten Sie den folgenden Code:
obj1 = {
"errors": [{"error": "err1", "fld": "mail"}, {"error": "err2", "fld": "name"}],
"success": "false",
}
obj2 = {
"errors": [{"error": "err1", "fld": "mail"}, {"error": "err2", "fld": "name"}],
"success": "false",
}
obj3 = {
"errors": [
{"error": "err1", "fld": "mail"},
{"error": "err2", "fld": "name"},
{"error": "err3", "fld": "time"},
],
"success": "false",
}
print(obj1 == obj2)
print(obj2 == obj3)
Ausgang:
True
False
Im Folgenden ist zu sehen, dass drei JSON-Objekte deklariert sind, von denen zwei gleich sind, während eines unterschiedlich ist. Mit dem Gleichheitsoperator können wir feststellen, ob sie gleich sind.
Dieser Ansatz ist leichter zu implementieren als jede Bibliothek von Drittanbietern und erspart die Mühe, die Dokumentation der Bibliotheken zu überprüfen. Andererseits bietet es nicht viel Funktionalität, die bei Bedarf mit einem Modul/einer Bibliothek eines Drittanbieters erreicht werden kann.
Verwenden Sie jsondiff
, um mehrstufige JSON-Objekte in Python zu vergleichen
jsondiff
ist ein Open-Source-Modul eines Drittanbieters, das verwendet werden kann, um zwischen JSON und JSON-ähnlichen Strukturen zu unterscheiden. Mit dieser Bibliothek kann es ziemlich einfach werden, Unterschiede zwischen JSON-Objekten zu finden, seien sie mehrstufig oder ungeordnet.
Bevor wir sehen, wie wir das machen können, installieren wir zuerst jsondiff
, da es ein Modul eines Drittanbieters ist und nicht in eine Standard-Python-Installation integriert ist.
Anleitung zur Installation von jsondiff
Öffnen Sie die Eingabeaufforderung und führen Sie den folgenden Befehl aus, um mit der Installation von jsondiff
zu beginnen:
pip install jsondiff
Ausgang:
Collecting jsondiff
Downloading jsondiff-2.0.0-py3-none-any.whl (6.6 kB)
Installing collected packages: jsondiff
Successfully installed jsondiff-2.0.0
Nachdem jsondiff
installiert wurde, können wir damit beginnen, unsere Aufgabe zu erfüllen.
Betrachten Sie den folgenden Code:
import jsondiff
obj1 = {
"countries": [
{
"name": "Great Britian",
"cities": [{"name": "Manchester"}, {"name": "London"}],
}
]
}
obj2 = {
"countries": [
{
"name": "Great Britian",
"cities": [{"name": "Manchester"}, {"name": "London"}],
}
]
}
res = jsondiff.diff(obj1, obj2)
if res:
print("Diff found")
else:
print("Same")
Ausgang:
Same
Im folgenden Code haben wir die Drittanbieter-Bibliothek jsondiff
verwendet, um herauszufinden, ob die beiden Objekte gleich sind oder nicht. Genauer gesagt haben wir die Funktion jsondiff.diff()
verwendet und unsere JSON-Objekte mit den Namen obj1
und obj2
übergeben.
Die Funktionsweise von jsondiff.diff
besteht darin, dass sie, wenn sie Änderungen findet, diese zurückgibt, die wir in einer Variablen namens res
speichern. Ob es Unterschiede gibt, wir können schnell feststellen, ob die verglichenen Objekte identisch oder unterschiedlich sind.
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedIn