Heim > Backend-Entwicklung > Python-Tutorial > So verwenden Sie reguläre Python-Ausdrücke für die JSON-Verarbeitung

So verwenden Sie reguläre Python-Ausdrücke für die JSON-Verarbeitung

PHPz
Freigeben: 2023-06-23 10:06:35
Original
2024 Leute haben es durchsucht

Bei der täglichen Programmierarbeit müssen wir manchmal JSON-Daten verarbeiten und Informationen extrahieren, und die leistungsstarken Funktionen regulärer Ausdrücke können uns dabei helfen, diese Arbeit schnell und effizient zu erledigen. In diesem Artikel stellen wir vor, wie man reguläre Python-Ausdrücke für die JSON-Verarbeitung verwendet.

JSON ist ein leichtes Datenaustauschformat, das häufig für die Netzwerkübertragung und Datenspeicherung verwendet wird. In Python können wir die JSON-Bibliothek zum Parsen von JSON-Daten verwenden, in einigen Fällen müssen wir jedoch eine bestimmte Verarbeitung und Extraktion von JSON-Daten durchführen. Zu diesem Zeitpunkt spielen reguläre Ausdrücke eine Rolle.

Werfen wir zunächst einen Blick auf die Grundstruktur von JSON-Daten. JSON-Daten bestehen normalerweise aus Schlüssel-Wert-Paaren. Schlüssel und Werte werden durch Doppelpunkte getrennt: „, jedes Schlüssel-Wert-Paar wird durch Kommas getrennt“, und die äußerste Ebene wird normalerweise durch geschweifte Klammern „{}“ umschlossen. . Zum Beispiel:

{
   "name": "John",
   "age": 30,
   "city": "New York"
}
Nach dem Login kopieren

Jetzt schauen wir uns an, wie man reguläre Python-Ausdrücke verwendet, um diese JSON-Daten zu extrahieren. Angenommen, wir müssen die Felder „Name“ und „Alter“ extrahieren, können wir die folgenden regulären Ausdrücke verwenden:

"name":s*"([^"]+)",s*"age":s*(d+)
Nach dem Login kopieren

Analysieren Sie diesen regulären Ausdruck:

  • ": Übereinstimmung mit „"-Zeichen
  • s*: Übereinstimmung mit einer beliebigen Anzahl von Leerzeichen
  • (Gruppe): Erfassen Sie den übereinstimmenden Inhalt. Die Gruppe kann ein beliebiges Zeichen oder ein regulärer Ausdruck sein
  • 1 , entspricht jedem Zeichen außer „

Mit dem obigen regulären Ausdruck können wir den Wert extrahieren, der dem Feld „Name“ und dem Wert entspricht, der dem Feld „Alter“ entspricht. Implementiert mit Python-Code:

import re

s = '{"name": "John", "age": 30, "city": "New York"}'

pattern = re.compile(r'"name":s*"([^"]+)",s*"age":s*(d+)')

match = pattern.search(s)

if match:
    name = match.group(1)
    age = match.group(2)
    print(name, age)
Nach dem Login kopieren

Ausgabe:

John 30
Nach dem Login kopieren

Schauen wir uns als Nächstes weitere Anwendungsszenarien zur Verwendung regulärer Python-Ausdrücke für die JSON-Datenextraktion an.

  1. Extrahieren Sie den Wert eines bestimmten Felds. Manchmal müssen wir nur den Wert eines bestimmten Felds extrahieren , können Sie den folgenden regulären Ausdruck verwenden:
  2. "field_name":s*"([^"]+)"
    Nach dem Login kopieren
Wenn wir beispielsweise den Wert extrahieren müssen, der dem Feld „Stadt“ in den JSON-Daten oben entspricht, können wir den folgenden regulären Ausdruck verwenden:

"city":s*"([^"]+)"
Nach dem Login kopieren

Python-Code-Implementierung:

import re

s = '{"name": "John", "age": 30, "city": "New York"}'

pattern = re.compile(r'"city":s*"([^"]+)",')

match = pattern.search(s)

if match:
    city = match.group(1)
    print(city)
Nach dem Login kopieren

Ausgabe:

New York
Nach dem Login kopieren

Extraktion von Array-Typ-Elementen

  1. In JSON-Daten müssen wir manchmal den Wert eines Array-Typ-Elements extrahieren. Sie können den folgenden regulären Ausdruck verwenden:
  2. "array_field":s*[s*([sS]*?)s*]
    Nach dem Login kopieren
Zum Beispiel müssen wir extrahieren das Feld „Haustiere“ in den folgenden JSON-Daten Alle Elemente im entsprechenden Wert:

{
   "name": "John",
   "age": 30,
   "pets": [
       {
           "name": "dog",
           "age": 3
       },
       {
           "name": "cat",
           "age": 2
       }
   ]
}
Nach dem Login kopieren
Nach dem Login kopieren

Sie können den regulären Ausdruck wie folgt verwenden:

"pets":s*[s*([sS]*?)s*]
Nach dem Login kopieren

Python-Code-Implementierung:

import re

s = '{"name": "John", "age": 30, "pets": [{"name": "dog", "age": 3},{"name": "cat", "age": 2}]}'

pattern = re.compile(r'"pets":s*[s*([sS]*?)s*]')

match = pattern.search(s)

if match:
    pets = match.group(1)
    print(pets)
Nach dem Login kopieren

Ausgabe:

{"name": "dog", "age": 3},{"name": "cat", "age": 2}
Nach dem Login kopieren

Mehrstufiges verschachteltes Element Extraktion

  1. Manchmal müssen wir mehrere Ebenen extrahieren. Für einen Wert in einem verschachtelten Element können Sie den folgenden regulären Ausdruck verwenden:
  2. "object1":s*{s*[sS]*?"object2":s*{s*[sS]*?"field_name":s*"([^"]+)"
    Nach dem Login kopieren
Zum Beispiel müssen wir den Wert extrahieren, der dem Feld „Alter“ des zweiten Elements entspricht im Wert des Felds „Haustiere“ in den folgenden JSON-Daten:

{
   "name": "John",
   "age": 30,
   "pets": [
       {
           "name": "dog",
           "age": 3
       },
       {
           "name": "cat",
           "age": 2
       }
   ]
}
Nach dem Login kopieren
Nach dem Login kopieren

Sie können reguläre Ausdrücke wie folgt verwenden:

"pets":s*[s*[sS]*?"age":s*(d+)[sS]*?}
Nach dem Login kopieren

Python-Code-Implementierung:

import re

s = '{"name": "John", "age": 30, "pets": [{"name": "dog", "age": 3},{"name": "cat", "age": 2}]}'

pattern = re.compile(r'"pets":s*[s*[sS]*?"age":s*(d+)[sS]*?}')

match = pattern.search(s)

if match:
    age = match.group(1)
    print(age)
Nach dem Login kopieren

Ausgabe:

2
Nach dem Login kopieren
Zusammenfassung:

Verwendung regulärer Ausdrücke für die JSON-Verarbeitung ermöglicht es uns, JSON-Daten flexibler zu extrahieren und zu verarbeiten, was in einigen Anwendungsszenarien, die das Filtern, Filtern, Konvertieren usw. erfordern, von großer Bedeutung ist. Allerdings ist zu beachten, dass bei der Verarbeitung von JSON-Daten möglicherweise keine regulären Ausdrücke verwendet werden Um für komplexere Situationen geeignet zu sein, müssen Sie flexibel entsprechend der tatsächlichen Situation wählen.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie reguläre Python-Ausdrücke für die JSON-Verarbeitung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage