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'>
コレを辞書型に変換する場合
- 「json」をインポート
- 「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
コメント