ホームページ > バックエンド開発 > Python チュートリアル > JSON デコーダが失敗する理由: 配列とオブジェクトの構文が間違っているため?

JSON デコーダが失敗する理由: 配列とオブジェクトの構文が間違っているため?

DDD
リリース: 2024-12-15 17:04:13
オリジナル
824 人が閲覧しました

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 データの内容を読み取り可能な形式で出力します。

値の抽出from JSON

JSON データを解析した後、Python 辞書を使用して個々の値にアクセスできますそしてリスト構文。例:

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

以上がJSON デコーダが失敗する理由: 配列とオブジェクトの構文が間違っているため?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート