id
English
Español
中國人
Tiếng Việt
Deutsch
Українська
Português
Français
भारतीय
Türkçe
한국인
Italiano
Polski JSON adalah singkatan dari JavaScript Object Notation. JSON tidak hanya ringan tetapi juga mudah dibaca dan ditulis oleh manusia. Demikian juga, mesin akan merasa mudah untuk mengurai dan menghasilkannya. Penguraian sangat penting ketika berurusan dengan konten dari API, file konfigurasi, atau sumber info tersimpan lainnya untuk pengembang Python mana pun. Artikel ini memandu Anda melalui dasar-dasar penguraian JSON menggunakan modul Python, termasuk cara menggunakan json.dump python untuk menyimpan konten.
Struktur JSON merinci detail dalam pasangan kunci-nilai. Berikut adalah contoh dasar dari sebuah objek:
{
"name": "Alice",
"age": 30,
"is_student": false,
"courses": ["Math", "Science"]
}
Contoh penguraian json python ini berisi: string, angka, boolean, dan larik. Membiasakan diri dengan struktur ini akan membuat Anda lebih mudah untuk bekerja di Python.
Dengan mengimplementasikan python, Anda dapat mem-parsing string json dengan mudah menggunakan modul bawaan di Python. Modul ini mencakup metode seperti json.loads() untuk membaca dari string, dan json.load() untuk membaca dari file. Sebaliknya, json.dumps() dan json.dump Python digunakan untuk menulis informasi ke string dan file, masing-masing.
Mari kita lihat cara membaca data JSON, yang akan kita bahas selanjutnya.
Jika Anda ingin membaca json di python, gunakan json.loads() untuk mem-parsing sebuah string dan mengubahnya menjadi sebuah objek Python:
import json
json_string = '{"name": "Alice", "age": 30, "is_student": false, "courses": ["Math", "Science"]}'
data = json.loads(json_string)
print(data)
Keluaran:
Untuk mengekstrak informasi dari sebuah berkas, gunakan metode ini: json.load() dan buka berkas json di python:
import json
with open('data.json', 'r') as file:
data = json.load(file)
print(data)
Keluaran:
Sebelum menulis, Anda sering kali perlu membaca atau memuat info yang sudah ada - dan di situlah metode python load json file menjadi berguna. Setelah info dimuat dengan benar, Anda dapat memanipulasi dan menulisnya kembali dalam berbagai format.
Untuk menulis info ke sebuah string, gunakan metode Python json.dumps:
import json
data = {
"name": "Alice",
"age": 30,
"is_student": False,
"courses": ["Math", "Science"]
}
json_string = json.dumps(data)
print(json_string)
Keluaran:
Untuk menulis rincian berkas ini, gunakan metode Python json.dump:
import json
data = {
"name": "Alice",
"age": 30,
"is_student": False,
"courses": ["Math", "Science"]
}
with open('data.json', 'w') as file:
json.dump(data, file)
Objek bersarang adalah hal yang umum ketika bekerja dengan struktur informasi yang lebih kompleks, yang dapat dengan mudah menangani struktur bersarang ini.
import json
nested_json_string = '''
{
"name": "Alice",
"age": 30,
"is_student": false,
"courses": ["Math", "Science"],
"address": {
"street": "123 Main St",
"city": "Wonderland"
}
}
'''
data = json.loads(nested_json_string)
print(data['address']['city'])
Keluaran:
Bahasa ini tidak dapat secara otomatis mengubah semua objek kustom menjadi JSON. Dalam kasus tersebut, Anda harus membuat penyandi khusus.
import json
class Student:
def __init__(self, name, age, is_student):
self.name = name
self.age = age
self.is_student = is_student
class StudentEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, Student):
return obj.__dict__
return super().default(obj)
student = Student("Alice", 30, False)
json_string = json.dumps(student, cls=StudentEncoder)
print(json_string)
Keluaran:
Untuk melakukan deserialisasi menjadi objek khusus, Anda harus mengimplementasikan dekoder khusus yang tahu cara menanganinya.
import json
class Student:
def __init__(self, name, age, is_student):
self.name = name
self.age = age
self.is_student = is_student
def student_decoder(dct):
return Student(dct['name'], dct['age'], dct['is_student'])
json_string = '{"name": "Alice", "age": 30, "is_student": false}'
student = json.loads(json_string, object_hook=student_decoder)
print(student.name)
Keluaran:
Bekerja dengan detail data dapat menyebabkan beberapa kesalahan umum, terutama ketika mengurai, menghasilkan, atau mengakses konten terstruktur. Menggunakan pengurai json python yang andal dapat membantu mengidentifikasi dan memperbaiki masalah ini dengan lebih efisien. Berikut adalah beberapa yang paling umum:
Kesalahan umum saat mem-parsing file json adalah menemukan format yang tidak valid. Hal ini membutuhkan tanda kutip ganda di sekitar kunci dan nilai string, serta penempatan tanda kurung dan tanda kurung yang tepat.
import json
invalid_json_string = "{'name': 'Alice', 'age': 30, 'is_student': False}"
try:
data = json.loads(invalid_json_string)
except json.JSONDecodeError as e:
print(f"Invalid JSON format: {e}")
Keluaran:
Terkadang, konten tidak menyertakan semua kunci yang Anda harapkan. Dengan menggunakan metode get(), Anda dapat menangani kunci yang hilang dengan aman dengan mengembalikan nilai default alih-alih memunculkan kesalahan.
import json
json_string = '{"name": "Alice", "age": 30}'
data = json.loads(json_string)
is_student = data.get('is_student', False)
print(is_student)import json
json_string = '{"name": "Alice", "age": 30}'
data = json.loads(json_string)
is_student = data.get('is_student', False)
print(is_student)
Gunakan modul pdb untuk mengatur breakpoint dan men-debug kode penguraian Anda.
import json
import pdb
json_string = '{"name": "Alice", "age": 30, "is_student": false}'
pdb.set_trace()
data = json.loads(json_string)
print(data)
Pengikisan web biasanya melibatkan pengambilan konten dari layanan yang mengembalikan informasi yang diperoleh. Di bawah ini adalah contoh yang menggunakan pustaka permintaan bersama dengan titik akhir https://httpbin.org/anything.
Sebelum kita mulai, pastikan Anda telah menginstal paket permintaan:
pip install requests
Ketika bekerja dengan konten terstruktur, Anda dapat menggunakan pustaka permintaan untuk mempermudah. Cukup keluarkan permintaan GET dan URL melalui requests.get(url). Kemudian, Anda dapat mem-parsing respons dengan response.json(). Dari sana, Anda dapat dengan mudah mengakses bagian informasi tertentu seperti tajuk, agen pengguna, asal, atau URL permintaan dan mencetaknya sesuai kebutuhan.
Kode ini mengandung penanganan kesalahan yang kuat; kode ini menangkap json.JSONDecodeError ketika terjadi kesalahan decoding, dan KeyError ketika kunci tertentu tidak ada, akibatnya membuat program ini terlindungi dari kerusakan 'tidak ada data'. Oleh karena itu, ketahanan kode tersebut memungkinkannya untuk menangani tugas-tugas penggalian web yang sebenarnya dengan sempurna.
import requests
import json
url = 'https://httpbin.org/anything'
response = requests.get(url)
try:
data = response.json()
# Mengekstraksi data spesifik dari respons JSON
headers = data['headers']
user_agent = headers.get('User-Agent', 'N/A')
origin = data.get('origin', 'N/A')
url = data.get('url', 'N/A')
print(f"User Agent: {user_agent}")
print(f"Origin: {origin}")
print(f"URL: {url}")
except json.JSONDecodeError:
print("Error decoding JSON response")
except KeyError as e:
print(f"Key error: {e} not found in the JSON response")
Setiap pengembang harus tahu cara mem-parsing file json di python. Dengan modul dan cara terbaik untuk melakukannya yang disorot oleh panduan ini, Anda akan dapat membaca, menulis, dan men-debug dengan cukup cepat. Ini berarti menguji kode Anda secara teratur dan menggunakan alat yang tepat dan fitur-fitur terbaru untuk berkinerja lebih baik. Panduan ini berfokus pada penguraian data json di python untuk membantu Anda menguasai tugas-tugas ini secara efisien.
Ketika melakukan penguraian web, penguraian menjadi sangat penting karena konten dari API web sering kali hadir dalam format ini. Dengan menjadi terampil dalam memproses dan memanipulasinya, Anda dapat mengekstrak informasi berharga dari berbagai sumber secara efisien.
Penguraian adalah keterampilan utama bagi setiap pengembang yang bekerja dengan API web, file konfigurasi, atau sumber eksternal. Menangani informasi-baik membaca dari string, file, menulis output terstruktur, atau berurusan dengan objek bersarang dan kustom-disederhanakan melalui modul bawaan dalam Python. Pengembang dapat membuka metode json.load(), json.loads(), json.dump(), json.dumps() Python dan mempelajari cara menangani masalah umum, mengimplementasikan enkoder atau dekoder khusus, dan membuat aplikasi khusus untuk interaksi informasi yang kuat dan dapat diandalkan. Mengingat format ini adalah standar web untuk bertukar informasi, keterampilan ini sangat berharga dalam mengikis, memanipulasi konten, dan mengintegrasikan beberapa layanan melalui API. Menggunakan kode python sederhana untuk membaca file json membuat penguraian file json dalam python dapat diakses untuk proyek apa pun, sementara json.dump python memungkinkan penyimpanan materi kembali secara efisien.
Komentar: 0