Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Penyahkod JSON Saya Gagal: Sintaks yang Salah dalam Tatasusunan lwn. Objek?

Mengapa Penyahkod JSON Saya Gagal: Sintaks yang Salah dalam Tatasusunan lwn. Objek?

DDD
DDDasal
2024-12-15 17:04:13824semak imbas

Why Does My JSON Decoder Fail:  Incorrect Syntax in Arrays vs. Objects?

Mengapa Penyahkod JSON Gagal: Sintaks Tidak Sah

Data JSON yang disediakan menunjukkan ralat yang menghalang Python daripada menghuraikannya dengan jayanya. Punca utama terletak pada sintaks elemen "topeng" dan "parameter" yang salah.

Sintaks JSON Objects vs. Arrays

objek JSON, yang setara kepada kamus dalam Python, disertakan dalam kurung kurawal {}. Tatasusunan, diwakili sebagai senarai dalam Python, disertakan dalam kurungan segi empat sama [].

Ralat dalam Data JSON

Data JSON yang diberikan salah menggunakan [] dan bukannya { } untuk "topeng" dan "parameter." Ralat sintaks ini mengakibatkan mesej ralat:

json.decoder.JSONDecodeError: Expecting ',' delimiter: line 13 column 13 (char 213)

Membetulkan Sintaks JSON

Untuk membetulkan ralat sintaks, kurungan yang mengelilingi "topeng" dan "parameter" hendaklah diganti dengan pendakap kerinting. Data JSON yang diperbetulkan sepatutnya kelihatan seperti ini:

{
    "maps": [
        {
            "id": "blabla",
            "iscategorical": "0"
        },
        {
            "id": "blabla",
            "iscategorical": "0"
        }
    ],
    "masks": {
        "id": "valore"
    },
    "om_points": "value",
    "parameters": {
        "id": "valore"
    }
}

Kod Python untuk Menghuraikan JSON yang Sah

Setelah data JSON diperbetulkan, kod Python berjaya menghuraikannya menggunakan kaedah json.load(). Kod yang disediakan boleh digunakan seperti berikut:

import json
from pprint import pprint

with open('data_fixed.json') as f:
    data = json.load(f)

pprint(data)

Kod ini akan mencetak kandungan data JSON dalam format yang boleh dibaca menggunakan fungsi pprint().

Mengekstrak Nilai daripada JSON

Selepas menghuraikan data JSON, nilai individu boleh diakses menggunakan kamus dan senarai Python sintaks. Contohnya:

  • data['maps'][0]['id']
  • data['masks']['id']
  • data ['om_points']

Atas ialah kandungan terperinci Mengapa Penyahkod JSON Saya Gagal: Sintaks yang Salah dalam Tatasusunan lwn. Objek?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn