首頁 >後端開發 >Python教學 >為什麼我的 JSON 解碼器失敗:數組與物件中的語法不正確?

為什麼我的 JSON 解碼器失敗:數組與物件中的語法不正確?

DDD
DDD原創
2024-12-15 17:04:13822瀏覽

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

為什麼 JSON 解碼失敗:語法無效

提供的 JSON 資料出現錯誤,導致 Python 無法成功解析它。根本原因在於「masks」和「parameters」元素的語法不正確。

JSON 物件與陣列的語法

JSON 對象,它們是等效的對於 Python 中的字典,用大括號 {} 括起來。數組在 Python 中表示為列表,用方括號 [] 括起來。

JSON 資料中的錯誤

給定的 JSON 資料錯誤地使用 [] 而不是 { } 對於「掩碼」和「參數」。此語法錯誤會導致錯誤訊息:

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

修正JSON 語法

要修正語法錯誤,請將「遮罩」和「參數」周圍的括號括號括起來應該用花括號代替。更正後的JSON 資料應如下所示:

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

用於解析有效JSON 的Python 程式碼

一旦JSON 資料修正,Python 程式碼就可以成功解析它使用json.load() 方法。提供的程式碼可依下列方式使用:

import json
from pprint import pprint

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

pprint(data)

此程式碼將使用 pprint() 函數以可讀格式列印 JSON 資料的內容。

提取值來自 JSON

解析 JSON 資料後,可以使用 Python 字典和列表語法存取各個值。例如:

  • 資料['maps'][0]['id']
  • 資料['masks']['id']
  • 資料[ 'om_points']

以上是為什麼我的 JSON 解碼器失敗:數組與物件中的語法不正確?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn