Panduan JSON untuk Pemula di Python

Halo semua, masa depan pemrogram Python! hari ini, kita akan memulai perjalanan yang menyenangkan ke dunia JSON di Python. Jangan khawatir jika kamu masih baru di bidang pemrograman – saya akan menjadi pemandu yang ramah, dan kita akan melakukannya langkah demi langkah. Pada akhir tutorial ini, kamu akan bisa menangani JSON seperti seorang profesional!

Python - JSON

JSON di Python

Apa itu JSON?

JSON, atau JavaScript Object Notation, adalah format interchange data ringan. Pikirkan tentang hal ini sebagai cara untuk menyimpan dan mengirimkan data – seperti sebuah bahasa universal yang dapat dipahami oleh berbagai program. JSON dapat dibaca oleh manusia (yang sangat bagus untuk kita!) dan mudah untuk diurai serta dibuat oleh mesin.

Di dunia pemrograman, JSON seperti anak cool yang semua orang ingin bersenang-senang dengan dia. Ini digunakan di mana-mana – dari API web hingga file konfigurasi. Itulah mengapa belajar untuk bekerja dengan JSON di Python adalah keterampilan yang sangat penting!

Mengapa menggunakan JSON dengan Python?

Python dan JSON seperti krim dan selai – mereka hanya kerja baik bersama! Python memiliki dukungan bawaan untuk JSON melalui modul json nya. Ini berarti kamu dapat dengan mudah mengkonversi objek Python ke JSON dan sebaliknya.

Ayo kita mulai dengan mengimpor modul JSON:

import json

Sederhana, kan? Sekarang kita siap untuk melompat ke bagian yang enak!

Serialisasi JSON

Serialisasi adalah hanya istilah yang keren untuk mengkonversi objek Python ke string JSON. Ini seperti menerjemahkan Python ke bahasa yang dapat dipahami oleh program lain.

Serialisasi Dasar

Ayo 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"}

Disini, json.dumps() mengambil kamus Python kita dan mengubahnya menjadi string JSON. Ini seperti sihir, tapi lebih baik karena ini benar-benar kode!

Pencetakancantik

Kadang-kadang, kita ingin JSON kita terlihat cantik dan dapat dibaca. Itulah saat 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 tetap.

Menulis JSON ke File

Seringkali, kita ingin menyimpan data JSON kita ke file. Ini bagaimana:

with open('data.json', 'w') as file:
json.dump(my_dict, file, indent=4)

Ini membuat file bernama data.json dan menulis JSON yang telah dicetak secara cantik kepadanya. Ini seperti menyimpan pesan teks, tapi untuk data!

Deserialisasi JSON

Deserialisasi adalah proses yang terbalik – mengubah string JSON kembali ke objek Python. Ini seperti menerjemahkan bahasa universal kembali ke Python.

Deserialisasi Dasar

Ayo 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 mengubahnya kembali menjadi kamus Python. Ini seperti sihir yang terbalik!

Membaca JSON dari File

Ingat file yang kita buat sebelumnya? Ayo kita baca itu kembali:

with open('data.json', 'r') as file:
loaded_data = json.load(file)

print(loaded_data)

Ini membaca data JSON dari file kita dan mengubahnya kembali menjadi objek Python. Ini seperti membuka pesan teks yang disimpan dan membacanya!

Penanganan JSON Tingkat Lanjut

Sekarang kita telah mencakup dasar-dasar, mari kita lihat beberapa teknik yang lebih tingkat lanjut.

Menangani Tipe Data Kompleks

JSON adalah hebat, tapi hanya mengerti beberapa tipe data secara alami. Ini adalah tabel tentang 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 bagaimana dengan tipe data yang lebih kompleks seperti objek datetime? Itulah saat encoding khusus masuk!

Kelas JSONEncoder

Kelas JSONEncoder memungkinkan kita untuk mendefinisikan encoding khusus bagi objek Python yang tidak didukung secara alami oleh JSON.

Berikut 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"}

Encoder khusus kita mengubah objek datetime ke string format ISO, yang dapat ditangani oleh JSON.

Kelas JSONDecoder

Serupa dengan itu, kelas JSONDecoder memungkinkan kita untuk mengubah bagaimana JSON dikodekan kembali ke objek Python.

Berikut adalah contoh yang mengubah string format ISO kembali ke 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 mengenali string format ISO dan mengubahnya kembali ke objek datetime.

Dan itu tadi, folks! Kita telah melakukan perjalanan melalui wilayah JSON di Python, dari dasar serialisasi dan deserialisasi ke wilayah tingkat lanjut encoder dan decoder khusus. Ingat, praktek membuat perfect, jadi jangan takut untuk bereksperimen dengan konsep ini.

JSON mungkin terlihat seperti bagian kecil dari Python, tetapi ini adalah keterampilan yang krusial di dunia data saat ini. Apakah kamu membuat aplikasi web, bekerja dengan API, atau menganalisis data, keterampilan JSON baru kamu akan membantu kamu dengan baik.

Terus coding, terus belajar, dan yang paling penting, terus bersenang-senang dengan Python!

Credits: Image by storyset