Dalam kerja pengaturcaraan harian, kadangkala kami perlu memproses data JSON dan mengekstrak maklumat, dan fungsi kuat ungkapan biasa boleh membantu kami menyelesaikan kerja ini dengan cepat dan cekap. Dalam artikel ini, kami akan memperkenalkan cara menggunakan ungkapan biasa Python untuk pemprosesan JSON.
JSON ialah format pertukaran data ringan yang biasa digunakan untuk penghantaran rangkaian dan penyimpanan data. Dalam Python, kita boleh menggunakan perpustakaan json untuk menghuraikan data JSON, tetapi dalam beberapa kes, kita perlu melakukan pemprosesan dan pengekstrakan data JSON tertentu Pada masa ini, ungkapan biasa akan memainkan peranannya.
Pertama, mari kita lihat struktur asas data JSON. Data JSON biasanya terdiri daripada pasangan nilai kunci dan nilai dipisahkan oleh titik bertindih ":", setiap pasangan nilai kunci dipisahkan dengan koma "," dan lapisan paling luar biasanya dibalut dengan kurungan kerinting "{}" . Contohnya:
{ "name": "John", "age": 30, "city": "New York" }
Sekarang mari kita lihat cara menggunakan ungkapan biasa Python untuk mengekstrak data JSON ini. Katakan kita perlu mengekstrak medan "nama" dan "umur", kita boleh menggunakan ungkapan biasa berikut :
"name":s*"([^"]+)",s*"age":s*(d+)
Analisis ungkapan biasa ini:
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)
John 30
"field_name":s*"([^"]+)"
"city":s*"([^"]+)"
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)
New York
rreee
Sebagai contoh, kita perlu mengekstrak semua elemen dalam nilai yang sepadan dengan "haiwan peliharaan" medan dalam data JSON berikut:"array_field":s*[s*([sS]*?)s*]
{ "name": "John", "age": 30, "pets": [ { "name": "dog", "age": 3 }, { "name": "cat", "age": 2 } ] }
"pets":s*[s*([sS]*?)s*]
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)
{"name": "dog", "age": 3},{"name": "cat", "age": 2}
"object1":s*{s*[sS]*?"object2":s*{s*[sS]*?"field_name":s*"([^"]+)"
{ "name": "John", "age": 30, "pets": [ { "name": "dog", "age": 3 }, { "name": "cat", "age": 2 } ] }
"pets":s*[s*[sS]*?"age":s*(d+)[sS]*?}
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)
Menggunakan ungkapan biasa untuk pemprosesan JSON membolehkan kami mengekstrak dan memproses data JSON dengan lebih fleksibel, iaitu berguna untuk situasi tertentu di mana data JSON perlu ditapis, ditapis, ditukar, dsb. Ia amat penting dalam senario aplikasi operasi Walau bagaimanapun, perlu diingat bahawa apabila memproses data JSON, ungkapan biasa mungkin tidak sesuai untuknya situasi yang lebih kompleks dan perlu dipilih secara fleksibel mengikut situasi sebenar.
Atas ialah kandungan terperinci Cara menggunakan ungkapan biasa Python untuk pemprosesan JSON. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!