Python プログラミング

【Python】TypeError: string indices must be integers, not strの原因と解決法

この記事は約2分で読めます。

 

TypeError: string indices must be integers, not str の原因

 

「TypeError: string indices must be integers, not str」の原因は文字型のデータに対して文字型の呼び出しを行っていること。APIのレスポンスなどでコンソールなどからは辞書型に見えていても内部では文字型になっているときによく遭遇する。

 

解決策はprint(type()) でまずデータの型をちゃんと確認すること。そして、JSONモジュールで文字型を辞書型に変換すること。

 

>>> text = '{"aaa": "789", "bbb": "012"}'
>>> text
'{"aaa": "789", "bbb": "012"}'
>>> type(text)
<class 'str'>

 

コレを辞書型に変換する場合

  1. 「json」をインポート
  2. 「json.loads()」で辞書型化

 

>>> import json
>>> di = json.loads(text)
>>> di
{'aaa': '789', 'bbb': '012'}
>>> type(di)

 

反対にjsonを文字型にする時はjson.dumps()

 

参照:https://blog.suganoo.net/entry/2019/02/05/164341

参照:https://www.lisz-works.com/entry/python-convert-json-dict

 


プログラミング・スクレイピングツール作成の相談を受け付けています!

クラウドワークス・ココナラ・MENTAなどでPython・SQL・GASなどのプログラミングに関する相談やツール作成などを承っております!

過去の案件事例:

  • Twitter・インスタグラムの自動化ツール作成
  • ウェブサイトのスクレイピングサポート
  • ダッシュボード・サイト作成
  • データエンジニア転職相談

これまでの案件例を見る

キャリア相談もお気軽に!文系学部卒からエンジニア・データサイエンティストへの転職経験をもとに、未経験者がどう進むべきかのアドバイスを提供します。


スポンサーリンク
/* プログラミング速報関連記事一覧表示 */
ミナピピンの研究室

コメント

タイトルとURLをコピーしました