Beranda BlogPengikisan web Cara membaca dan mengurai JSON dengan Python

Cara membaca dan mengurai JSON dengan Python

oleh Kadek

JSON atau JavaScript Object Notation adalah format pertukaran data yang ringan. Sangat mudah untuk membaca, menulis, menganalisis, dan bahkan menghasilkan. JSON umumnya digunakan dalam aplikasi web yang digunakan untuk mentransfer data antara browser web dan server.

Secara umum, JSON adalah format berbasis teks untuk menyimpan dan bertukar data. Ini sering digunakan dalam pengembangan web untuk mentransfer data antara browser web dan server. JSON juga digunakan untuk mengirimkan data melalui API atau mengirim data ke pengguna. Oleh karena itu, sering terjadi pada web scraping.

Memahami JSON dan strukturnya

Data JSON adalah struktur terurut yang terdiri dari pasangan nilai kunci. Kunci harus berupa string. Nilai dapat berupa tipe data apa pun termasuk string, angka, array, dan objek.


Gambar yang menyoroti aspek-aspek utama JSON, termasuk struktur terurutnya, pasangan nilai kunci, dan tipe data.
Ilustrasi struktur dan komponen data JSON

JSON adalah format pertukaran data ringan yang mudah dibaca dan ditulis oleh manusia dan mesin. Ini digunakan di REST API, AJAX dan WebSockets. Struktur JSON yang paling sederhana adalah pasangan nilai kunci tunggal, seperti:

{
  "title": "Example"
}

Pendekatan ini memungkinkan JSON menyusun data dengan mudah, yang membantunya menjadi format yang populer. Berikut beberapa manfaat menggunakan JSON:

  1. Data JSON dapat dibaca manusia, sehingga mudah untuk dipahami dan di-debug.
  2. JSON adalah format sederhana yang dapat diuraikan dan dihasilkan oleh mesin.
  3. Struktur data JSON terlihat dari data itu sendiri sehingga mudah dipahami.

JSON mendukung berbagai tipe data termasuk string, angka, array, dan objek. Misalnya, objek JSON berikut memiliki tiga properti:

{
  "title": "Example",
  "year": 2023,
  "article": {
    "title": "JSON parsing",
    "language": "Python"
  }
}

Properti item bersarang di objek utama pada contoh di atas. Hal ini memungkinkan kita untuk menyimpan data yang lebih kompleks dalam objek JSON.

Dasar-dasar penguraian Python JSON

Penguraian JSON, juga disebut deserialisasi, mengubah string atau file JSON menjadi struktur data yang dapat dimanipulasi oleh suatu program. Pada saat yang sama, serialisasi JSON adalah proses mengubah struktur data menjadi string atau file JSON. Dengan kata lain, penguraian JSON melibatkan pembacaan data JSON, sedangkan serialisasi JSON melibatkan penulisan data JSON.

Meskipun tipe data JSON dan Python mungkin memiliki kesamaan, penting untuk dipahami bahwa mungkin ada perbedaan. Berikut tabel yang menunjukkan korespondensi antara tipe data di JSON dan Python:

Tipe data JSON

Tipe data piton

nomor

int, mengapung

Rangkaian

str

Nilai Boolean

bodoh

BENAR

BENAR

SALAH

SALAH

obyek

dikte

Himpunan

daftar

objek (kosong)

dikt() atau {}

susunan (kosong)

daftar() atau ()

Nol

Tidak ada

JSON Tidak Terdefinisi

Tidak setara secara langsung

JSON NaN

mengapung('nan')

set

dihentikan (konversi diperlukan)

Array byte dan byte

Byte, array byte

Pencacahan

enum.Enum

Tipe data JSON dan Python umumnya kompatibel, namun mungkin ada beberapa perbedaan dan pertimbangan saat bekerja dengannya, terutama untuk struktur data dan objek khusus yang lebih kompleks.

Anda dapat menggunakan modul JSON bawaan (JSON Encoder dan Decoder) untuk membaca data JSON dengan Python. Modul JSON menyediakan dua metode untuk mengubah data JSON menjadi objek Python:

  • Loads() mengubah string JSON menjadi objek Python.
  • Load() mengubah file JSON menjadi objek Python.

Objek yang dikembalikan oleh metode ini dapat berupa daftar atau kamus.

Mengurai string JSON dengan Python

Mari kita lihat contoh penggunaan perpustakaan JSON untuk mengurai string. Untuk melakukan ini, kami membuat file baru dalam format .py dan mengimpor perpustakaan:

import json

Selanjutnya, kita membuat variabel untuk menyimpan string JSON sebagai teks:

json_string = '{"name": "John Doe", "age": 30}'

Kami kemudian menggunakan perpustakaan JSON untuk mengurai string menjadi objek JSON:

json_object = json.loads(json_string)

Sekarang kita dapat bekerja dengan data ini seperti kamus biasa. Berikut ini contoh pengaksesan data:

# Get the name
name = json_object("name")

# Get the age
age = json_object("age")

Untuk mengubah data dalam kamus, Anda juga dapat mengakses data menggunakan tombol.

Parsing file JSON

Sekarang mari kita lihat cara mengurai file JSON. Untuk melakukan ini, kita akan membuat file bernama “data.json” dan menambahkan kode JSON dari contoh sebelumnya. Kami kemudian memperbarui contoh sebelumnya untuk membaca data dari file:

with open("data.json", "r") as f:
    json_object = json.load(f)

Hasilnya, kami meneruskan data yang sama ke dalam variabel json_object.

Serialisasi JSON dengan Python

Seperti disebutkan sebelumnya, serialisasi melibatkan konversi objek JSON menjadi string atau file. Untuk melakukan ini kita dapat menggunakan perintah berikut:

  • dump() dapat mengonversi objek Python menjadi file.
  • dumps() dapat mengonversi objek Python menjadi string.

Mari kita lihat masing-masing perintah ini dengan sebuah contoh.

Mengonversi objek Python menjadi string JSON

Mari kita gunakan isi variabel json_object dari contoh sebelumnya sebagai objek JSON. Untuk mengubah data menjadi string, gunakan perintah berikut:

json_string = json.dumps(json_object)

String yang dihasilkan identik dengan yang kami berikan pada contoh pertama.

Tulis objek Python ke file

Untuk membuat file dan menyimpan objek JSON, kami menggunakan perintah dump():

with open("data.json", "w") as f:
    json.dump(json_object, f)

Ini akan menimpa isi file data.json dengan data baru dari objek json_object.

Ubah data JSON

Saat bekerja dengan data JSON dengan Python, sering kali konten objek JSON perlu diubah. Bagian ini membahas berbagai cara untuk menambah, memperbarui, dan menghapus data dalam objek JSON.

Tambahkan data ke objek JSON

Data baru hanya dapat ditambahkan ke objek JSON melalui pasangan nilai kunci. Untuk melakukan ini, Anda perlu mengakses objek dan menetapkan nilai baru:

json_object("city") = "New York"

Itu dibuat ketika kunci tidak ada di objek.

Perbarui data di objek JSON

Memperbarui data sangat mirip dengan menetapkan data baru. Satu-satunya perbedaan adalah Anda menggunakan kunci yang sudah ada di struktur objek JSON:

json_object("name") = "Jane Doe"

Ini akan menggantikan nilai kunci nama dari “John Doe” menjadi “Jane Doe”.

Hapus data dari objek JSON

Menghapus data dari objek JSON tidak cukup untuk menggantinya dengan nilai kosong. Sebagai gantinya, Anda perlu menghapus pasangan nilai kunci tertentu. Pustaka JSON mendukung kata kunci del untuk menghapus pasangan nilai kunci:

del json_object("city")

Berhati-hatilah saat menggunakan fitur ini karena data yang terhapus tidak dapat dipulihkan.

Teknik penguraian JSON tingkat lanjut

Dalam skenario yang lebih kompleks, Anda mungkin menghadapi persyaratan penguraian JSON tingkat lanjut. Bagian ini melampaui dasar-dasarnya untuk membantu Anda menangani struktur data kompleks dan situasi unik secara efektif.

Pencetakan Cantik Python untuk JSON

Meskipun data JSON mudah diproses, namun bisa jadi sulit untuk dibaca. Misalnya, mencetak seluruh struktur objek JSON yang kompleks dalam satu baris bisa jadi sulit untuk dikerjakan.

Untuk mengatasi masalah ini, konsep “Pretty JSON” dikembangkan. Pretty JSON adalah cara memformat JSON dalam format yang lebih mudah dibaca dan estetis. Hal ini sangat berguna ketika bekerja dengan data JSON yang besar atau bertumpuk.


JSON menjadi JSON Cantik

Python menyediakan metode json.dumps() dengan parameter indentasi yang memungkinkan Anda menentukan tingkat indentasi untuk struktur bersarang. Fitur ini secara signifikan meningkatkan keterbacaan keluaran JSON.

pretty_json = json.dumps(json_object, indent=4)

Ini akan mencetak JSON yang bagus dengan lekukan 4 spasi.

Bekerja dengan data JSON dari sumber eksternal

Aplikasi sering kali mengambil data JSON dari sumber eksternal seperti API web atau database. Pustaka Permintaan membuat permintaan dengan Python dan mendukung respons JSON.

Mari kita minta situs web httpbin.org, yang mengembalikan respons JSON dengan alamat IP asal permintaan dibuat:

import requests

response = requests.get("https://httpbin.org/ip")

Sekarang Anda dapat mengurai data JSON dari respons:

json_data = response.json()

Hasilnya, Anda akan menerima objek JSON dan Anda dapat dengan mudah mengakses isinya. Misalnya, untuk mendapatkan alamat IP, Anda perlu mendapatkan nilai kunci json_data(“origin”).

Berurusan dengan kunci duplikat

Meskipun spesifikasi JSON tidak mengizinkan kunci duplikat dalam suatu objek, data sebenarnya tidak selalu mengikuti aturan ini. Saat menangani data JSON yang berisi kunci duplikat, penting untuk mengetahui cara menanganinya.

Secara default, mesin JSON Python tidak menangani kunci duplikat dengan benar dan mungkin memberikan pengecualian. Namun, Anda dapat menerapkan solusi khusus untuk mengatasi masalah ini. Untuk menghindari kesalahan, Anda dapat menggunakan opsi “ketat”, misalnya:

Json_data = json.loads(json_string, strict=False)

Menyetel parameter ketat ke False saat menggunakan json.loads() memungkinkan pengurai JSON untuk terus menguraikan meskipun menemukan kunci duplikat. Kamus Python yang dihasilkan berisi kemunculan terakhir setiap pasangan nilai kunci dalam data JSON.

Konversi JSON ke CSV dengan Python

CSV (Comma Separated Values) adalah salah satu format file paling populer untuk menyimpan data tabular dan didukung oleh sebagian besar sistem operasi. Tidak seperti XSLX, file CSV menyimpan data tabular sebagai teks biasa, dipisahkan dengan koma.

Untuk menyimpan objek JSON dengan cepat ke file CSV dengan Python, Anda dapat menggunakan pustaka CSV atau Pandas. Mari kita lihat kedua contoh tersebut. Pertama instal perpustakaan CSV dan Pandas:

pip install csv
pip install pandas

Sekarang kita mengimpor perpustakaan CSV ke dalam skrip:

import csv

Untuk menulis data ke file, kita perlu membuka file dan memasukkan data baris demi baris:

with open('data.csv', 'w', newline="") as csvfile:

Kemudian atur header dan buat objek perpustakaan CSV untuk menulis data:

    fieldnames = ('title', 'year', 'title', 'language')
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

    writer.writeheader()

Dan ambil data ini baris demi baris:

    writer.writerow({
        'title': json_object('title'),
        'year': json_object('year'),
        'title': json_object('article')('title'),
        'language': json_object('article')('language')
    })

Hasilnya Anda akan mendapatkan tabel:


JSON ke CSV atau Excel

Jika Anda ingin mempermudah proses pencatatan, Anda dapat menggunakan bingkai data perpustakaan Pandas. Impor perpustakaan ke dalam skrip:

import pandas as pd

Kemudian buat bingkai data dari objek JSON:

df = pd.DataFrame(json_data)

Dan simpan datanya dalam format CSV:

df.to_csv("data.csv", index=False)

Jika Anda ingin menyimpan data ke file XLSX, Anda dapat menggunakan metode to_excel DataFrame. Tentukan nama file yang diinginkan dan atur index=False untuk mengecualikan kolom indeks default:

df.to_excel("data.xlsx", index=False)

Kode ini membuat file Excel bawaan dari objek JSON Anda yang nama kolomnya sesuai dengan nama kunci dalam data JSON Anda. Ini adalah cara mudah untuk mengekspor data terstruktur ke Excel untuk dianalisis atau dibagikan lebih lanjut.

Diploma

Tutorial ini mencakup berbagai aspek bekerja dengan data JSON dengan Python. JSON atau Notasi Objek JavaScript adalah format yang ada di mana-mana untuk bertukar dan menyimpan data. Memahami struktur, penguraian, dan serialisasi JSON sangat penting bagi pengembang web, ilmuwan data, dan siapa pun yang bekerja dengan data dengan Python.

Kami telah membahas dasar-dasar JSON, termasuk penguraian string dan file JSON. Selain itu, kami membahas metode untuk mengubah data JSON, termasuk menambahkan, memperbarui, dan menghapus pasangan nilai kunci. Kami juga membahas metode penguraian JSON tingkat lanjut seperti pencetakan cantik agar mudah dibaca, bekerja dengan data dari sumber eksternal seperti API web, dan menangani kunci duplikat.

Menguasai keterampilan ini akan mempersiapkan Anda untuk bekerja dengan data JSON dengan Python, baik membangun aplikasi web, menganalisis data, atau bekerja dengan data dari berbagai sumber.

Pos terkait

Tinggalkan Komentar