Python による JSON エンコード/デコード
シームレスなデータ交換と保存のために、Python 辞書を JSON (JavaScript Object Notation) に変換するのが一般的です。要件。ただし、辞書から JSON データにアクセスしようとすると、予期しないエラーが発生する可能性があります。
エラーが発生しました:
次のコード スニペットを検討してください:
<code class="python">r = {'is_claimed': 'True', 'rating': 3.5} r = json.dumps(r) file.write(str(r['rating']))</code>
JSON 文字列から「評価」キーにアクセスしようとすると、「TypeError: 文字列インデックスは str ではなく整数である必要があります」エラーが発生します。このエラーは、json.dumps() が辞書「r」を実際の JSON オブジェクトまたは辞書ではなく文字列に変換するために発生します。
正しいアプローチ:
解決するにはこの問題では、 json.loads() メソッドを利用して JSON 文字列を辞書にロードし直します。これにより、次のように「評価」キーにアクセスできるようになります:
<code class="python">import json r = {'is_claimed': 'True', 'rating': 3.5} r = json.dumps(r) loaded_r = json.loads(r) print(loaded_r['rating'])</code>
区別の理解:
json.dumps() は辞書を文字列として保存します。 json.loads() はそれを辞書として取得します。データをシリアル化する場合は json.dumps() を使用し、逆シリアル化する場合は json.loads() を使用することを忘れないでください。
以上がPython 辞書から JSON データにアクセスする際のエラーを回避する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。