「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > JSON データの解析時に「TypeError: 文字列インデックスは整数である必要があります」を解決する方法は?

JSON データの解析時に「TypeError: 文字列インデックスは整数である必要があります」を解決する方法は?

2024 年 12 月 21 日に公開
ブラウズ:994

How to Resolve

「TypeError: 文字列インデックスは整数である必要があります」の回避

JSON ファイルからわかりやすい CSV 形式にデータを操作しようとすると、「TypeError:文字列インデックスは整数である必要があります」というエラーが発生します。このエラーは、文字列のフィールドに辞書のようにアクセスするときに発生します。解決策を見てみましょう。

エラーについて

エラーを理解するには、Python の文字列には辞書のようにインデックスを付けることができないことに注意することが重要です。辞書では、キーは文字列としてアクセスできます (たとえば、dictionary["key"])。対照的に、文字列のフィールドへのアクセスは、次の例に示すように、整数インデックスを使用して行う必要があります。

mystring = "helloworld"
print(mystring[0])  # Outputs 'h', as '0' refers to the first character

解決策の適用

コード内で、項目のフィールドにアクセスしようとしていますstring 型の変数:

csv_file.writerow([item["gravatar_id"], item["position"], item["number"]])

この問題を解決するには、フィールドにアクセスする前に item 変数を辞書に変換します。

csv_file.writerow([item.get("gravatar_id"), item.get("position"), item.get("number")])

または、json モジュールのloads() 関数を使用して変換することもできます。項目文字列を辞書に直接追加:

item_dict = json.loads(item)
csv_file.writerow([item_dict["gravatar_id"], item_dict["position"], item_dict["number")])

これらの変更により、整数インデックスを使用してフィールドにアクセスできるようになり、「TypeError:」が解決されます。文字列インデックスは整数である必要があります」エラー。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3