Referenzseite: [Einführung in Python] Analysieren von JSON
JSON ist ein Datenformat, das beim Datenaustausch in einer Webanwendung verwendet wird. JSON ist eine Notation, die sowohl von Menschen als auch von Computern verwendet werden kann. Sie ist jedoch schwer zu lesen, da die Datenmenge groß ist und sie in gewissem Umfang analysiert werden muss. Dieses Mal werde ich erklären, wie JSON in Python analysiert wird.
In diesem Artikel verwenden wir als Beispiel eine JSON-Datei mit dem Namen "test.json".
test.json
{
"book1":{
"title":"Python Beginners",
"year": 2005 ,
"page": 399
},
"book2":{
"title": "Python Developers",
"year": 2006 ,
"page": 650
},
"book3":{
"title":"Python cookbook",
"year": 2002 ,
"page": 344
},
"book4":{
"title": "Python Dictionary",
"year": 2012 ,
"page": 1024
}
}
Um JSON-Daten in Python zu analysieren, müssen Sie zuerst die JSON-Daten als Wörterbuch lesen. Es gibt zwei Hauptmethoden zum Lesen von JSON-Daten.
Dies ist eine Methode zum Lesen der als JSON-Datei gespeicherten Daten. Verwenden Sie die Ladefunktion des JSON-Moduls, um die Daten zu laden.
import json #Muss erforderlich sein
Variable 1= open(‘JSON-Dateipfad zum Lesen’, ‘r’)
Variable 2= json.load(Variable 1)
Zunächst wird die JSON-Datei mit der Öffnungsfunktion auf dieselbe Weise geöffnet wie eine normale geöffnete Datei. Anschließend können Sie die JSON-Datei lesen, indem Sie die Dateivariable der geöffneten JSON-Datei an das Argument json.load übergeben. Die von der Ladefunktion geladene JSON-Datei wird als Wörterbuch gespeichert.
import json
f = open('test.json', 'r')
json_dict = json.load(f)
print('json_dict:{}'.format(type(json_dict)))
Ausführungsergebnis
json_dict:
Eine andere Möglichkeit, JSON-Daten zu lesen, besteht darin, eine JSON-formatierte Zeichenfolge in ein Wörterbuch zu konvertieren. Das Json-Modul wird zum Konvertieren von Zeichenfolgen im JSON-Format geladen Verwenden Sie eine Funktion. Es ähnelt der Ladefunktion, machen Sie also keinen Fehler.
import json
Variable 1= json.loads(Variable 2) #Variable 2はJSON形式の文字列
Wenn die Ladefunktion eine JSON-formatierte Zeichenfolge als Argument übergibt, konvertiert sie diese in einen Wörterbuchtyp und gibt sie zurück.
import json
json_str = '''
{
"test":"json",
"test2":"json2"
}
'''
json_dict = json.loads(json_str)
print('json_dict:{}'.format(type(json_dict)))
Ausführungsergebnis
json_dict:
Sie können Daten aus einer JSON-Datei mithilfe der Ladefunktion laden. Es gibt jedoch ein Problem, wenn Sie sie so laden, wie sie sind. Dies liegt daran, dass Python-Wörterbuchtypen ihre Reihenfolge nicht beibehalten. Jedes Mal, wenn Sie eine JSON-Datei normal lesen, ist die Reihenfolge nicht mehr in Ordnung. Um dies zu verhindern, verwenden Sie die Ladeoption "object_pairs_hook".
import json
json_str = '''
{
"test":"json",
"test2":"json2"
}
'''
json_dict = json.loads(json_str)
print('json_dict:{}'.format(type(json_dict)))
Ausführungsergebnis
json_dict:
In Python gibt es einen Typ namens "OrderedDict", einen Wörterbuchtyp, der in der richtigen Reihenfolge gespeichert wird. Durch Angabe von "collection.OrderedDict" in der Option "object_pairs_hook" beim Laden von JSON mit der Ladefunktion werden JSON-Daten als OrderedDict-Typ geladen, sodass sie der Reihe nach geladen werden können.
Nach dem Lesen des JSON ist es Zeit, die JSON-Daten zu analysieren. Beim Parsen von JSON-Daten müssen die erforderlichen Daten aus den JSON-Daten extrahiert werden. Da JSON in Python jedoch als Wörterbuchtyp behandelt wird, kann es wie ein Wörterbuchtyp behandelt werden.
import json
f = open('test.json', 'r')
json_dict = json.load(f)
print('Informationen zu Buch1:{}'.format(json_dict['book1']))
print('Anzahl der Seiten in Buch3:{}'.format(json_dict['book3']['page']))
Ausführungsergebnis
Buch1-Informationen: {"Titel": "Python-Anfänger", "Jahr": 2005, "Seite": 399} Anzahl der Seiten in Buch 3: 344
In diesem Beispiel wird der Wert durch Angabe des Schlüssels wie bei einem normalen Wörterbuchtyp abgerufen. Sie können auch Methoden vom Typ Wörterbuch oder itate mit einer for-Anweisung verwenden, um Daten nach Belieben abzurufen.
import json
f = open('test.json', 'r')
json_dict = json.load(f)
for x in json_dict:
book_page = json_dict[x]['page']
if(book_page >= 500):
print('{0}:{1}'.format(x, json_dict[x]))
Ausführungsergebnis
book4:{‘page': 1024, ‘year': 2012, ‘title': ‘Python Dictionary’} book2:{‘page': 650, ‘year': 2006, ‘title': ‘Python Developers’}
In diesem Beispiel werden nur diejenigen mit [Seite] von 500 oder mehr aus den JSON-Daten extrahiert. Im Fall von Python gibt es viele praktische Methoden, mit denen Sie JSON-Daten einfach analysieren können.
Bisher habe ich Python-Skripte geschrieben, um JSON zu lesen und zu analysieren. Es ist jedoch mühsam, jedes Mal ein Skript zu schreiben, um nur eine kleine Menge von JSON anzuzeigen und zu analysieren.
In einem solchen Fall können Sie mit Python einfache JSON-Objekte in der Befehlszeile anzeigen und analysieren. Sie können den Inhalt der JSON-Datei in der Befehlszeile anzeigen, indem Sie die Befehlszeile oder das Terminal starten und Folgendes eingeben.
python -m json.tool test.json
Ausführungsergebnis
{ “book1″: { “title”: “Python Beginners”, “year”: 2005, “page”: 399 }, “book2″: { “title”: “Python Developers”, “year”: 2006, “page”: 650 }, “book3″: { “title”: “Python cookbook”, “year”: 2002, “page”: 344 }, “book4″: { “title”: “Python Dictionary”, “year”: 2012, “page”: 1024 } }
Recommended Posts