Python - JSON: Panduan Pengendalian JSON untuk Pemula di Python
Helo di sini, ahli kunci Python masa depan! Hari ini, kita akan melakukan perjalanan yang menarik ke dunia JSON di Python. Jangan khawatir jika anda baru dalam pemrograman – saya akan menjadi pemandu yang mesra anda, dan kita akan melakukannya langkah demi langkah. Pada akhir tutorial ini, anda akan mengendalikan JSON seperti profesional!
JSON di Python
Apa itu JSON?
JSON, atau JavaScript Object Notation, adalah format pertukaran data ringan. Pikirkan tentang cara untuk menyimpan dan mengangkut data – seperti bahasa universal yang dapat difahami oleh program yang berbeda. Ia adalah dapat dibaca oleh manusia (yang sangat bagus untuk kita!) dan mudah untuk mesin untuk mengurai dan menghasilkan.
Dalam dunia pemrograman, JSON adalah seperti anak yang kool yang semua orang ingin bersenam dengannya. Ia digunakan di mana-mana – dari API web ke fail konfigurasi. Itulah mengapa belajar untuk bekerja dengan JSON di Python adalah keterampilan yang penting!
Mengapa gunakan JSON dengan Python?
Python dan JSON adalah seperti kacang tanah dan jelly – mereka hanya bekerja baik bersama! Python memiliki dukungan bawaan untuk JSON melalui modul json
nya. Ini berarti anda dapat dengan mudah mengkonversi objek Python ke JSON dan sebaliknya.
Mari kita mulai dengan mengimpor modul JSON:
import json
Simple, kan? Sekarang kita siap untuk mendepani yang menarik!
Serialisasi JSON
Serialisasi adalah hanya istilah yang klasik untuk mengkonversi objek Python menjadi string JSON. Ia seperti menerjemahkan Python ke bahasa yang dapat dipahami oleh program lain.
Serialisasi Dasar
Mari kita mulai dengan kamus Python sederhana:
my_dict = {
"name": "Alice",
"age": 30,
"city": "Wonderland"
}
json_string = json.dumps(my_dict)
print(json_string)
Output:
{"name": "Alice", "age": 30, "city": "Wonderland"}
Di sini, json.dumps()
mengambil kamus Python kita dan menjadikannya string JSON. Ia seperti sihir, tapi lebih baik karena itu adalah benar-benar kode!
Pencetakancantik
Kadang-kadang, kita ingin JSON kita terlihat cantik dan dapat dibaca. Itulah di mana pencetakan cantik masuk:
pretty_json = json.dumps(my_dict, indent=4)
print(pretty_json)
Output:
{
"name": "Alice",
"age": 30,
"city": "Wonderland"
}
Parameter indent=4
memberitahu Python untuk menambahkan 4 ruang indentasi, membuat JSON kita terlihat rapi dan kemas.
Menulis JSON ke Fail
Sering kali, kita ingin menyimpan data JSON kita ke fail. Ini cara:
with open('data.json', 'w') as file:
json.dump(my_dict, file, indent=4)
Ini membuat fail bernama data.json
dan menulis JSON cantik kita kepadanya. Ia seperti menyimpan pesan teks, tetapi untuk data!
Deserialisasi JSON
Deserialisasi adalah proses yang terbalik – mengubah string JSON kembali menjadi objek Python. Ia seperti menerjemahkan bahasa universal kembali ke Python.
Deserialisasi Dasar
Mari kita mulai dengan string JSON:
json_string = '{"name": "Bob", "age": 25, "city": "Neverland"}'
python_dict = json.loads(json_string)
print(python_dict)
print(type(python_dict))
Output:
{'name': 'Bob', 'age': 25, 'city': 'Neverland'}
<class 'dict'>
json.loads()
mengambil string JSON kita dan menjadikannya kembali menjadi kamus Python. Ia seperti sihir yang terbalik!
Membaca JSON dari Fail
Ingat fail yang kita buat tadi? Mari kita baca kembali:
with open('data.json', 'r') as file:
loaded_data = json.load(file)
print(loaded_data)
Ini membaca data JSON dari fail kita dan mengkonversi kembali menjadi objek Python. Ia seperti membuka pesan teks yang disimpan dan membacanya!
Pengendalian JSON Lanjutan
Sekarang kita telah menangani dasar, mari kita lihat beberapa teknik yang lebih lanjutan.
Mengendalikan Tipe Data Kompleks
JSON adalah bagus, tetapi ia hanya mengenal beberapa tipe data secara alami. Ini adalah tabel bagaimana tipe Python dipetakan ke tipe JSON:
Python Type | JSON Type |
---|---|
dict | object |
list, tuple | array |
str | string |
int, float | number |
True | true |
False | false |
None | null |
Tapi apa tentang tipe data yang kompleks seperti objek datetime? Itulah di mana enkoding khusus masuk!
Kelas JSONEncoder
Kelas JSONEncoder
memungkinkan kita untuk menentukan enkoding khusus untuk objek Python yang tidak memiliki dukungan alami oleh JSON.
Ini adalah contoh dengan objek datetime:
from datetime import datetime
class DateTimeEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, datetime):
return obj.isoformat()
return super().default(obj)
data = {
"name": "Charlie",
"birthday": datetime(1990, 5, 15)
}
json_string = json.dumps(data, cls=DateTimeEncoder)
print(json_string)
Output:
{"name": "Charlie", "birthday": "1990-05-15T00:00:00"}
Enkoder khusus kita mengubah objek datetime menjadi string format ISO, yang dapat ditangani oleh JSON.
Kelas JSONDecoder
Serupa, kelas JSONDecoder
memungkinkan kita untuk menyesuaikan cara JSON dikodekan kembali menjadi objek Python.
Ini adalah contoh yang mengubah string format ISO kembali menjadi objek datetime:
import dateutil.parser
class DateTimeDecoder(json.JSONDecoder):
def __init__(self, *args, **kwargs):
json.JSONDecoder.__init__(self, object_hook=self.object_hook, *args, **kwargs)
def object_hook(self, obj):
for key, value in obj.items():
if isinstance(value, str):
try:
obj[key] = dateutil.parser.parse(value)
except ValueError:
pass
return obj
json_string = '{"name": "Charlie", "birthday": "1990-05-15T00:00:00"}'
decoded_data = json.loads(json_string, cls=DateTimeDecoder)
print(decoded_data)
print(type(decoded_data['birthday']))
Output:
{'name': 'Charlie', 'birthday': datetime.datetime(1990, 5, 15, 0, 0)}
<class 'datetime.datetime'>
Decoder khusus kita mengenal string format ISO dan mengubahnya kembali menjadi objek datetime.
Dan itu adalah, folks! Kita telah melakukan perjalanan melalui wilayah JSON di Python, dari dasar serialisasi dan deserialisasi ke teknik lanjutan enkoder dan dekoder khusus. Ingat, praktek membuat perfect, jadi jangan khawatir untuk bereksperimen dengan konsep ini.
JSON mungkin terlihat seperti bagian kecil dari Python, tetapi itu adalah keterampilan yang penting dalam dunia data saat ini. Apakah anda membuat aplikasi web, bekerja dengan API, atau menganalisis data, keterampilan JSON baru anda akan memberikan manfaat besar.
Teruskan pemrograman, teruskan belajar, dan yang paling penting, teruskan untuk bersenang-senang dengan Python!
Credits: Image by storyset