

Pythonの初心者です。  
AzureのFace APIを使って、人物画像から感情を数値化するサンプルプログラムを実行しているのですが、エラーが出てしまっています。

以下がエラーの抜粋となります。

[code]

    File "emotion_2.py", line 65, in <module>
        top = x['faceRectangle']['top']
    TypeError: string indices must be integers
    
[/code]

ソースコード(抜粋)

[code]

    def emotion(image):
        headers = {
            # Request headers
            'Content-Type': 'application/octet-stream',
            'Ocp-Apim-Subscription-Key': 'apiの取得Key',
        }
    
        params = urllib.parse.urlencode({
        })
    
[/code]

[code]

    img = '人物画像のパス' 
    
    data = open(img,'br')
    a = emotion(data)
    json_dict = json.loads(a)
    print(json.dumps(json_dict, sort_keys=True, indent=1))
    print("main Start!!")
    for x in json_dict:
        top = x['faceRectangle']['top']
        left = x['faceRectangle']['left']
        width = x['faceRectangle']['width']
        height = x['faceRectangle']['height']
    
        anger = x['scores']['anger']
        contempt = x['scores']['contempt']
        disgust = x['scores']['disgust']
        fear = x['scores']['fear']
        happiness = x['scores']['happiness']
        neutral = x['scores']['neutral']
        sadness = x['scores']['sadness']
        surprise = x['scores']['surprise']
    
[/code]

幾らか同様のエラーについて検索したのですが、文字列に変更?  
してしまっていると。  
しかしそれらを見ても自分ではあまり理解できておりません。  
どうかご教示いただきますよう、お願いいたします。


CC BY-SA 4.0
2019-12-11T14:46:08.113
61348
2019-12-11T14:48:42.710
2019-12-11T14:48:42.710
19110
37034
question
python python3 json api windows-10
Python TypeError: string indices must be integers　エラーについて