0

たとえば、次の JSON オブジェクトがある場合 (Python の場合はセミコロンを削除します):

values = {
    a: 1,
    b: {
        c: 2,
        d: { e: 3 }
    },
    f: 4,
    g: 5   
};

JSで印刷しようとするvaluesとうまくいきます。しかし Python では、NameError: name 'a' is not definedこれらの変数が定義されておらず、文字列として設定する必要があることを意味するエラーが返されます。

これらの未定義の変数を手動で文字列に変換せずに、Python にロードする必要があるとしましょう。試してみjson.loadsましたが、うまくいきませんでした。この作業を行うための他の組み込み関数はありますか? JSでは、定義されていない場合、または定義されているかどうかを単に無視すると、自動的に文字列として扱うようです?

説明はありますか?

4

1 に答える 1

3

json.loads を試しましたが、うまくいきませんでした。

これは、引用したものがJSONではないためです。これは、何か (おそらく変数) に割り当てられている JavaScript オブジェクト初期化子です。

同等の JSON は次のとおりです。

{
    "a": 1,
    "b": {
        "c": 2,
        "d": { "e": 3 }
    },
    "f": 4,
    "g": 5   
}

注意事項:

  • 変数なし、いいえ=
  • 最上位は、オブジェクト (例: {...}) または配列 (例: )でなければなりません[...]
  • プロパティ名 (キー) は二重引用符で囲む必要があります
  • 文字列は二重引用符で囲む必要があります (この例には文字列はありませんが、その場合、一重引用符は無効になります)。
  • ;最後にいいえ
于 2013-09-18T10:17:07.793 に答える