Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Adakah `json.loads()` Membuang 'JSONDecodeError: Nilai Jangkaan' dan Bagaimana Saya Boleh Membetulkannya?
Apabila cuba menghuraikan JSON menggunakan fungsi json.loads(), mesej ralat seperti "Expecting value: baris 1 lajur 1 (char 0)" boleh timbul. Ralat ini menunjukkan bahawa rentetan input yang diberikan tidak mematuhi format JSON yang dijangkakan.
Punca paling biasa ralat ini ialah badan tindak balas yang kosong atau tidak lengkap. Untuk menyelesaikannya, pastikan langkah berikut dipatuhi:
Berikut ialah contoh menggunakan Permintaan pakej:
import requests response = requests.get(url) if response.status_code != 204: return response.json()
Untuk melindungi daripada pelanggaran piawaian HTTP, semak pengepala Jenis Kandungan untuk mengesahkan bahawa pelayan bertujuan untuk menghantar JSON. Jika ValueError berlaku semasa menghuraikan JSON, pengendalian ralat yang sesuai boleh dilaksanakan:
if ( response.status_code != 204 and response.headers["content-type"].strip().startswith("application/json") ): try: return response.json() except ValueError: # Handle server misbehavior
Atas ialah kandungan terperinci Mengapa Adakah `json.loads()` Membuang 'JSONDecodeError: Nilai Jangkaan' dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!