Python

Buat JSON Response di Python

Buat JSON Response di Python

Fail JSON (Notasi Objek JavaScript) adalah media yang sangat popular untuk menukar data antara format yang berbeza. Ini berisi data dalam format teks yang didukung oleh berbagai bahasa seperti Python, PHP, PERL, dll. Tujuan utama fail JSON adalah untuk memindahkan data antara pelayan dan klien. Permintaan dihasilkan oleh Python untuk mengambil data dari URI sumber tertentu. Sekiranya tindak balas permintaan dikembalikan dalam format JSON maka isi respons dapat diambil menggunakan respons.fungsi json (). Ia mengembalikan tindak balas dengan menggunakan objek kamus Python. Bagaimana fungsi ini dapat digunakan untuk menguraikan respons JSON menggunakan pustaka permintaan Python akan ditunjukkan dalam tutorial ini.

Respons JSON:

Modul permintaan Python mengandungi penyahkod JSON untuk berfungsi dengan data JSON. Maklumbalas.Fungsi json () mengembalikan tindak balas JSON jika penyahkod JSON berfungsi dengan baik. Maklumbalas.Fungsi json () menimbulkan pengecualian jika penyahkod JSON gagal dan tindak balas JSON tidak mengandungi data atau data tidak sah. Nilai pulangan tindak balas.menaikkan_for_status () fungsi atau tindak balas.status_code perlu diperiksa sebelum melaksanakan tindak balas.fungsi json ().

Penggunaan tindak balas yang berbeza.json ():

Tiga penggunaan tindak balas yang berbeza.fungsi json () akan ditunjukkan di bahagian tutorial ini.

Contoh-1: Penggunaan tindak balas yang mudah.json ()

Penggunaan tindak balas yang mudah.fungsi json () akan dijelaskan dalam contoh ini. Sambutan untuk mendapatkan permintaan URI, https: // api.github.com / disimpan dalam pemboleh ubah bernama respons. Seterusnya, nilai pemboleh ubah tindak balas diperiksa. Sekiranya pemboleh ubah respons mengandungi tindak balas yang tidak sah, maka ia akan mencetak mesej ralat. Sekiranya pemboleh ubah respons mengandungi respons yang sah yang merupakan kod status tindak balas dan kandungannya, mesej kejayaan akan dicetak.

# Modul permintaan import
permintaan import
# Buat permintaan dapatkan
tindak balas = permintaan.dapatkan ('https: // api.github.com / ')
# Periksa tindak balas
jika tindak balas:
# Cetak kod status respons
cetak ('Kod status tindak balas adalah% d'% respons.status_kod)
# Cetak kandungan JSON
cetak ('Isi JSON adalah: \ n% s'% respons.json ())
# Cetak mesej kejayaan
cetak ('\ n Permintaan berjaya ditangani.')
lain:
# Cetak mesej ralat untuk jawapan yang tidak betul
cetak ('Respons tidak sah.')

Pengeluaran:

Output berikut akan muncul setelah melaksanakan skrip di atas.

Contoh-2: Penggunaan tindak balas.json () kecuali pengendalian

Cara menggunakan tindak balas.fungsi json () dengan pengecualian pengendalian akan ditunjukkan dalam contoh ini. Modul HttpError diimport dengan modul permintaan dalam skrip untuk menangani pengecualian. Di sini, alamat URI akan diambil dari pengguna untuk menggunakan permintaan tersebut.dapatkan fungsi (). Respons permintaan ini akan disimpan dalam pemboleh ubah respons. Seterusnya, tindak balas.Fungsi raise_for_status () digunakan untuk memeriksa respons permintaan sama ada ia sah atau tidak. Sekiranya respons tidak sah, maka pengecualian akan dihasilkan dan kod blok kecuali akan dilaksanakan berdasarkan pengecualian. Sekiranya tindak balas itu sah, maka isi pemboleh ubah tindak balas akan diulang menggunakan loop untuk mencetak nilai kamus di setiap baris yang mengandungi data respons.

# Modul permintaan import
permintaan import
# Import HTTPError untuk pengendalian pengecualian
dari permintaan.pengecualian mengimport HTTPError
# Tentukan URI
uri = input ('Masukkan URI yang sah: \ n')
# Cetak mesej menunggu
cetak ('Menunggu tindak balas ... \ n')
cuba:
# Buat permintaan dapatkan untuk membaca kandungan feed github
tindak balas = permintaan.dapatkan (uri)
# Naikkan pengecualian jika respons tidak berjaya
tindak balas.naikkan_untuk_status ()
# Baca kandungan JSON
jsonResponse = tindak balas.json ()
cetak ("Kandungan JSON adalah: \ n")
# Baca dan cetak setiap pasangan nilai-kunci dari respons JSON
untuk kunci, nilai dalam jsonResponse.item ():
cetak (kunci, ":", nilai)
# Cetak mesej ralat untuk ralat HTTP
kecuali HTTPError sebagai http_err:
cetak ('Ralat HTTP berlaku:% s'% http_err)
# Cetak mesej ralat untuk ralat HTTP
kecuali Pengecualian sebagai kesalahan:
cetak ('Kesalahan lain berlaku:% s'% err)

Pengeluaran:

Output berikut akan muncul setelah melaksanakan skrip ketika nilai URI yang tidak ada akan diberikan oleh pengguna. Di sini, pengecualian HTTPError telah dihasilkan bersama dengan mesej ralat yang sesuai.


Output berikut akan muncul setelah melaksanakan skrip ketika nilai URI yang tidak sah akan diberikan oleh pengguna. Di sini, pengecualian lain telah dihasilkan dengan mesej ralat yang sesuai.

Output berikut akan muncul setelah melaksanakan skrip ketika nilai URI yang sah akan diberikan oleh pengguna. Di sini, kandungan JSON telah dicetak dengan betul.

Contoh-3: Penggunaan tindak balas.json () dengan rentetan pertanyaan

Cara menggunakan tindak balas.fungsi json () dengan rentetan pertanyaan akan ditunjukkan dalam contoh ini. Di sini, permintaan.fungsi get () menggunakan nilai rentetan pertanyaan dengan URI menggunakan parameter. Ia akan mencari entri untuk bahasa PERL di repositori yang diberikan. Sekiranya pemboleh ubah respons mengandungi respons yang sah, maka nama dan keterangan repositori akan dicetak, jika tidak, akan ada mesej ralat.

# Modul permintaan import
permintaan import
# Mencari di repositori github menggunakan rentetan pertanyaan
tindak balas = permintaan.dapatkan (
'https: // api.github.com / carian / repositori ',
params = 'q': 'permintaan + bahasa: perl',
)
# Periksa tindak balas
jika tindak balas:
# Baca kandungan JSON
json_response = tindak balas.json ()
# Baca item repositori tertentu
repositori = json_response ['item'] [0]
# Cetak nama repositori
cetak ('Repository name:% s'% repositori ["name"])
# Cetak keterangan repositori
print ('Repository description:% s'% repositori ["keterangan"])
lain:
# Cetak mesej ralat untuk jawapan yang tidak betul
cetak ('Respons tidak sah.')

Pengeluaran:

Output berikut akan muncul setelah melaksanakan skrip di atas. Nama dan keterangan repositori untuk bahasa PERL telah dicetak di sini.

Kesimpulan:

Cara yang berbeza untuk menghantar permintaan ke URI tertentu dan membaca respons menggunakan respons.Fungsi json () ditunjukkan dalam tutorial ini dengan menggunakan contoh mudah. Saya harap tutorial ini dapat membantu pembaca memahami penggunaan respons JSON di Python dan menerapkannya dengan betul dalam skrip mereka apabila diperlukan.

OpenTTD vs Simutrans
Membuat simulasi pengangkutan anda sendiri boleh menyeronokkan, santai dan sangat menarik. Itulah sebabnya anda perlu memastikan bahawa anda mencuba s...
Tutorial OpenTTD
OpenTTD adalah salah satu permainan simulasi perniagaan yang paling popular di luar sana. Dalam permainan ini, anda perlu membuat perniagaan pengangku...
SuperTuxKart untuk Linux
SuperTuxKart adalah tajuk hebat yang direka untuk membawa anda pengalaman Mario Kart secara percuma pada sistem Linux anda. Ia cukup mencabar dan meny...