Parsing Python JSON: Panduan Sederhana

Parsing Python JSON: Panduan Sederhana

JSON (singkatan dari 'JavaScript Object Notation') adalah format berbasis teks yang memfasilitasi pertukaran data antara beragam aplikasi. Misalnya, aplikasi ditulis dalam C++ berjalan di Windows dapat dengan mudah bertukar data JSON dengan aplikasi yang ditulis dengan python dan berjalan di Linux. Kesederhanaan dan fleksibilitasnya telah menyebabkan penggunaan yang luas dalam beberapa tahun terakhir, terutama dalam preferensi untuk format berbasis XML sebelumnya.





Ada perpustakaan dan toolkit yang tersedia untuk parsing dan menghasilkan JSON dari hampir semua bahasa dan lingkungan. Artikel ini berkonsentrasi pada metode dan masalah yang timbul dari pemrosesan JSON menggunakan python.





Beberapa Sampel JSON

Entitas JSON paling umum yang akan Anda temui adalah obyek : satu set pemetaan nilai kunci dalam format yang ditunjukkan di bawah ini.





apa yang dilakukan langganan kedutan?

orang.json:

{
'firstName': 'Alice',
'lastName': 'Hall',
'age': 35
}

Berikut adalah bagaimana Anda dapat mewakili sebuah array dari objek. Dalam representasi ini, setiap item dari array adalah objek. Berikut ini adalah contoh gaji pemain baseball.



gaji.json:

[ {
'year' : 1985,
'teamId' : 'ATL',
'leagueId' : 'NL',
'playerId' : 'barkele01',
'salary' : 870000
}, {
'year' : 1985,
'teamId' : 'ATL',
'leagueId' : 'NL',
'playerId' : 'bedrost01',
'salary' : 550000
} ]

Tentu saja, Anda juga dapat merepresentasikan array skalar. Ini terlihat seperti ini:





[
'hello',
'world',
35
]

Mengurai JSON dengan Python

Python menyediakan json modul yang dapat digunakan untuk mengurai JSON, serta menghasilkan JSON dari objek dan daftar python.

Cuplikan kode berikut menunjukkan cara membuka file JSON dan memuat data ke dalam variabel.





import json
with open('sample.json', 'r') as fp:
obj = json.load(fp)

Saat Anda memiliki string yang berisi data JSON, Anda dapat mengonversinya menjadi objek python (atau daftar) dengan yang berikut:

cara mengubah teks di situs web
obj = json.loads('''{
'firstName': 'Alice',
'lastName': 'Hall',
'age': 35
}''')

Untuk mengurai URL JSON, Anda dapat membuat objek URL menggunakan urllib2 dan gunakan json.load() seperti sebelumnya.

import urllib2, json
url = urllib2.urlopen('http://site.com/sample.json')
obj = json.load(url)

Penanganan Kesalahan

Ketika JSON memiliki kesalahan, Anda akan mendapatkan NilaiError . Anda dapat menanganinya dan mengambil tindakan korektif jika diperlukan.

try:
obj = json.loads('''{
'firstName': 'Alice',
'lastName: 'Hall',
'age': 35
}''')
except ValueError:
print('error loading JSON')

Mengurai JSON Dari Baris Perintah

Terkadang, berguna untuk mengurai JSON menggunakan baris perintah python, mungkin untuk memeriksa kesalahan atau untuk mendapatkan keluaran yang diindentasi dengan baik.

cat glossary.json
# prints
{'glossary': {'GlossDiv': {'GlossList': {'GlossEntry': {'GlossDef': {'GlossSeeAlso': ['GML', 'XML'], 'para': 'A meta-markup language, used to create markup languages such as DocBook.'}, 'GlossSee': 'markup', 'Acronym': 'SGML', 'GlossTerm': 'Standard Generalized Markup Language', 'Abbrev': 'ISO 8879:1986', 'SortAs': 'SGML', 'ID': 'SGML'}}, 'title': 'S'}, 'title': 'example glossary'}}

Untuk mendapatkan output indentasi dari file JSON di atas, Anda dapat melakukan hal berikut:

python -mjson.tool glossary.json
# prints
{
'glossary': {
'GlossDiv': {
'GlossList': {
'GlossEntry': {
'Abbrev': 'ISO 8879:1986',
'Acronym': 'SGML',
'GlossDef': {
'GlossSeeAlso': [
'GML',
'XML'
],
'para': 'A meta-markup language, used to create markup languages such as DocBook.'
},
'GlossSee': 'markup',
'GlossTerm': 'Standard Generalized Markup Language',
'ID': 'SGML',
'SortAs': 'SGML'
}
},
'title': 'S'
},
'title': 'example glossary'
}
}

Dan inilah cara Anda memuat objek JSON ke python dan mengekstrak hanya yang Anda butuhkan.

python -c 'import json; fp = open('glossary.json', 'r'); obj = json.load(fp); fp.close(); print(obj['glossary']['title']')
# prints
example glossary

Mengakses Data

Setelah Anda memuat data JSON ke dalam variabel python, Anda dapat mengakses data seperti yang Anda lakukan pada python dict (atau daftar sesuai kasusnya). Sebagai contoh, data JSON di atas dapat diakses sebagai berikut:

firstName = obj['firstName']
lastName = obj['Hall']
age = obj['age']

Tipe Data

Tipe data ditentukan secara otomatis dari data. Perhatikan bahwa usia diuraikan sebagai bilangan bulat.

print(type(obj['firstName']), type(obj['lastName']), type(obj['age']))
# prints

Tabel konversi berikut digunakan untuk mengonversi dari JSON ke python.

Parsing JSON Menggunakan Kelas Kustom

Secara default, objek JSON adalah diuraikan menjadi python dikte . Terkadang Anda mungkin perlu membuat objek kelas Anda sendiri secara otomatis dari data JSON. Anda dapat melakukannya dengan menentukan objek_kait fungsi yang menangani konversi. Contoh berikut menunjukkan caranya.

Berikut adalah kelas khusus yang mewakili a Orang .

class Person:
def __init__(self, firstName, lastName, age):
self.firstName = firstName
self.lastName = lastName
self.age = age
def __str__(self):
return '{{'firstName' = '{0}','lastName' = '{1}', 'age' = {2}}}'.format(self.firstName, self.lastName, self.age)

Sebuah instance dari kelas ini dibuat dengan melewatkan argumen yang diperlukan sebagai berikut:

person = Person('Crystal', 'Newell', 27)

Untuk menggunakan kelas ini untuk membuat instance saat mem-parsing JSON, Anda memerlukan objek_kait fungsi didefinisikan sebagai berikut: Fungsi menerima python dikte dan mengembalikan objek dari kelas yang benar.

def obj_creator(d):
return Person(d['firstName'], d['lastName'], d['age'])

Anda sekarang dapat menggunakan ini objek_kait berfungsi saat menjalankan parser JSON.

with open('sample.json', 'r') as fp:
obj = json.load(fp, object_hook = obj_creator)
print(obj)
# prints
{'firstName' = 'Alice','lastName' = 'Hall', 'age' = 35}

Contoh Penggunaan JSON

JSON sangat populer saat ini. Banyak situs web dan aplikasi SaaS (Software As A Service) menawarkan output JSON yang dapat dikonsumsi langsung oleh aplikasi. Beberapa yang tersedia untuk umum meliputi:

  • StackOverflow/StackExchange. Berikut adalah URL-nya yang mengembalikan daftar pertanyaan dalam format JSON.
  • GitHub menawarkan api JSON di https://developer.github.com/v3/.
  • Dan inilah Flickr API: https://developer.yahoo.com/flickr/.

Jika Anda mencari lebih banyak contoh tentang cara memanfaatkannya dengan baik, lihat panduan ini untuk membangun bot media sosial menggunakan Python .

apple iphone macet di logo apple

Apakah Anda menggunakan JSON untuk menggunakan atau menyediakan layanan? Dan apakah Anda menggunakan python di tumpukan teknologi Anda? Jelaskan di komentar di bawah.

Membagikan Membagikan Menciak Surel Apakah Layak Mengupgrade ke Windows 11?

Windows telah didesain ulang. Tetapi apakah itu cukup untuk meyakinkan Anda untuk beralih dari Windows 10 ke Windows 11?

Baca Selanjutnya
Topik-topik yang berkaitan
  • Pemrograman
  • Pemrograman
  • Python
Tentang Penulis Jay Sridhar(17 Artikel Diterbitkan) More From Jay Sridhar

Berlangganan newsletter kami

Bergabunglah dengan buletin kami untuk kiat teknologi, ulasan, ebook gratis, dan penawaran eksklusif!

Klik di sini untuk berlangganan