Heim  >  Artikel  >  Backend-Entwicklung  >  So verarbeiten Sie JSON-Daten mit Python

So verarbeiten Sie JSON-Daten mit Python

青灯夜游
青灯夜游Original
2018-11-14 14:37:503271Durchsuche

Wie verwende ich Python zur Verarbeitung von JSON-Daten? In diesem Artikel werden Ihnen die grundlegenden Methoden zur Verwendung von Python zur Verarbeitung von JSON-Daten vorgestellt. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird Ihnen hilfreich sein.

Bevor wir die grundlegenden Methoden zur Verwendung von Python zur Verarbeitung von JSON-Daten vorstellen, müssen wir zunächst verstehen: Was ist JSON?

JSON steht für „JavaScript Object Notation“, was als „Datenformat basierend auf JavaScript-Sprachsymbolen“ bezeichnet werden kann. Diese Notation basiert jedoch nur auf JavaScript und kann in verschiedenen anderen Sprachen verwendet werden.

JSON ist eine Möglichkeit, Daten zu speichern und auszutauschen, die durch seine Syntax implementiert und in vielen Webanwendungen verwendet wird. Der Vorteil von JSON besteht darin, dass es über ein für Menschen lesbares Format verfügt, was neben seiner Effektivität bei der Verwendung von APIs einer der Gründe für die Verwendung bei der Datenübertragung sein kann.

In JSON werden Daten durch Name/Wert-Paare dargestellt; Objekte werden in geschweiften Klammern gespeichert, auf jeden Namen folgt ein „:“ (Doppelpunkt) und Name/Wert-Paare werden durch (Komma) getrennt; Eckige Klammern schließen das Array ein, wobei die Werte durch (Komma) getrennt sind.

Beispiel für Daten im JSON-Format:

{
 "book1":{
"title": "Python Beginners",
 "year": 2005 ,
"page": 399
},
"book2":{
 "title": "Python Developers",
 "year": 2006 ,
"page": 650
 }
}

Sehen wir uns genauer an, wie JSON-Daten in Python verarbeitet werden.

Python erleichtert die Verarbeitung von JSON-Daten. Das Modul, das dies erreicht, ist das JSON-Modul. Dieses Modul sollte in der Python-Installation (integriert) enthalten sein, sodass Sie keine externen Module installieren müssen, wie dies bei PDF- und Excel-Dateien der Fall ist. Um dieses Modul zu verwenden, müssen Sie es nur importieren (beginnen Sie mit dem Schreiben):

import json

Aber was macht die JSON-Bibliothek? Diese Bibliothek analysiert hauptsächlich JSON aus Dateien oder Zeichenfolgen. Es analysiert auch JSON in ein Wörterbuch oder eine Liste in Python und umgekehrt, d. h. es konvertiert das Python-Wörterbuch oder die Python-Liste in einen JSON-String.

JSON lesen (JSON zu Python)

JSON lesen bedeutet, JSON in Python-Werte (Objekte) umzuwandeln. Wie oben erwähnt, analysiert die JSON-Bibliothek JSON in ein Wörterbuch oder eine Liste in Python. Dazu verwenden wir die Funktion „loads()“ (aus String laden), wie unten gezeigt:

import json
jsonData = '{"name": "Frank", "age": 39}'
jsonToPython = json.loads(jsonData)

Wenn Sie die Ausgabe sehen möchten, drucken Sie jsonToPython. In diesem Fall erhalten Sie die folgende Ausgabe:

{'age': 39, 'name': 'Frank'}

Das heißt, die Daten werden als Python-Wörterbuch (JSON-Objektdatenstruktur) zurückgegeben.

Python zu JSON

Im vorherigen Abschnitt haben wir JSON in Python eingeführt. In diesem Abschnitt zeigen wir Ihnen, wie Sie Python-Werte konvertieren ( kodiert) als JSON.

Angenommen, wir haben das folgende Wörterbuch in Python:

import json
pythonDictionary = {'name':'Bob', 'age':44, 'isEmployed':True}
dictionaryToJson = json.dumps(pythonDictionary)

Wenn wir print dictionaryToJson ausführen, erhalten wir die folgenden JSON-Daten:

{"age": 44, "isEmployed": true, "name": "Bob"}

Daher wird diese Ausgabe als behandelt Objektdatendarstellung (Wörterbuch). Die Methode dumps() ist der Schlüssel zu dieser Art von Operation.

Zu diesem Zeitpunkt ist zu beachten, dass JSON nicht alle Arten von Python-Objekten speichern kann, sondern nur die folgenden Typen: List String; Daher müssen alle anderen Typen für die Speicherung in JSON konvertiert werden.

Angenommen, wir haben die folgende Klasse:

class Employee(object):
    def __init__(self, name):
        self.name = name

Angenommen, wir erstellen ein neues Objekt abder wie unten gezeigt:

abder = Employee('Abder')

Wenn wir dieses Objekt in JSON konvertieren möchten, das Was zu tun? Ist das json.dumps(abder)? In diesem Fall erhalten Sie eine Fehlermeldung ähnlich der folgenden:

Traceback (most recent call last):
  File "test.py", line 8, in <module>
    abderJson = json.dumps(abder)
  File "/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 243, in dumps
    return _default_encoder.encode(obj)
  File "/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py", line 207, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py", line 270, in iterencode
    return _iterencode(o, 0)
  File "/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py", line 184, in default
    raise TypeError(repr(o) + " is not JSON serializable")
TypeError: <__main__.Employee object at 0x10e74b750> is not JSON serializable

Aber gibt es eine Problemumgehung? Zum Glück gibt es das. Um dieses Problem zu lösen, können wir eine Methode ähnlich der folgenden definieren:

def jsonDefault(object):
    return object.__dict__

und dann das Objekt wie folgt in JSON kodieren:

jsonAbder = json.dumps(abder, default=jsonDefault)

Wenn Sie print jsonAbder ausführen, sollten Sie die folgende Ausgabe erhalten:

{"name": "Abder"}

Wir haben jetzt das Python-Objekt (abder) in JSON codiert.

Das obige ist der detaillierte Inhalt vonSo verarbeiten Sie JSON-Daten mit Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn