JSON ファイルからわかりやすい CSV 形式にデータを操作しようとすると、「TypeError:文字列インデックスは整数である必要があります」というエラーが発生します。このエラーは、文字列のフィールドに辞書のようにアクセスするときに発生します。解決策を見てみましょう。
エラーを理解するには、Python の文字列には辞書のようにインデックスを付けることができないことに注意することが重要です。辞書では、キーは文字列としてアクセスできます (たとえば、dictionary["key"])。対照的に、文字列のフィールドへのアクセスは、次の例に示すように、整数インデックスを使用して行う必要があります。
mystring = "helloworld" print(mystring[0]) # Outputs 'h', as '0' refers to the first character
コードでは、フィールドにアクセスしようとしています。文字列型の item 変数の:
csv_file.writerow([item["gravatar_id"], item["position"], item["number"]])
問題を解決するには、その item 変数にアクセスする前に、 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: 文字列インデックスは整数である必要があります」エラーが解決されます。
以上がJSON データを解析する際の「TypeError: 文字列インデックスは整数である必要があります」を解決する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。