TypeError字符串索引必须是整数-python json dict

TypeError字符串索引必须是整数-python json dict,python,json,python-3.x,dictionary,python-requests,Python,Json,Python 3.x,Dictionary,Python Requests,我一直得到TypeError:在我的python代码中,字符串索引必须是整数。这就是我得到的错误 File "C:lifebot\symptoms.py", line 127, in getConditionfromText if symptom['Name'].lower() == el['label'].lower(): TypeError: string indices must be integers 这是我的代码symtoms.py中给出错误的部分 #

我一直得到TypeError:在我的python代码中,字符串索引必须是整数。这就是我得到的错误

File "C:lifebot\symptoms.py", line 127, in getConditionfromText if symptom['Name'].lower() == el['label'].lower(): TypeError: string indices must be integers
这是我的代码symtoms.py中给出错误的部分

     # APIMEDIC Diagnosis Client
        self._diagnosisClient = apidemic.DiagnosisClient(username, password, authUrl, language, healthUrl)
        
        # List of all available symptoms from Apimedic API.
        self.availableSymptoms = self._diagnosisClient.loadSymptoms()

        # Client for database transactions and requests
        # self._databaseClient = database.Database()

    def getSymptoms (self):
        '''
        Return dictionary of all (ID, Name) pairs from apimedic api.
        '''
        result = dict()
        for symptom in self.availableSymptoms:
            result[symptom['ID']] = symptom['Name']
       
        return result

def getConditionfromText(self, text):
        found_symptoms = ""
        text = text.replace(' ', '+')
        url = 'https://polar-refuge-89127.herokuapp.com/text={}'.format(text)
        USER_AGENT = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36'}
        result = requests.get(url, headers=USER_AGENT)
        page = ast.literal_eval(result.text)
        # Concatenate all symptoms present in text
        for symptom in self.availableSymptoms:
            for el in page:
                if symptom['Name'].lower() == el['label'].lower():
          
                    found_symptoms += ' ' + str(symptom['ID'])
完整的代码视图在这里

这是我的json指令

[{"ID":10,"Name":"Abdominal pain"},{"ID":238,"Name":"Anxiety"},{"ID":104,"Name":"Back pain"},{"ID":75,"Name":"Burning eyes"},{"ID":46,"Name":"Burning in the throat"},{"ID":170,"Name":"Cheek swelling"},{"ID":17,"Name":"Chest pain"},{"ID":31,"Name":"Chest tightness"},{"ID":175,"Name":"Chills"},{"ID":139,"Name":"Cold sweats"},{"ID":15,"Name":"Cough"},{"ID":207,"Name":"Dizziness"},{"ID":244,"Name":"Drooping eyelid"},{"ID":273,"Name":"Dry eyes"},{"ID":87,"Name":"Earache"},{"ID":92,"Name":"Early satiety"}]

我已通过此链接获取结果数据:
“https://polar-refuge-89127.herokuapp.com/text={}“
从url返回的页面的值为:

{"data":[{"label":"back pain","value":0.5},{"label":"abdominal pain","value":0.5}],"size":2}

在getConditionfromText方法中将第“页中el的这一行代码
”更改为第['data']页中el的
,它将修复此错误

您知道第:
页中el的表达式
中el的计算结果是什么吗?似乎
el
的计算结果是字符串,因此尝试使用“label”对其进行索引会触发异常。当输入通过(我的NLP)此url{}时,它会返回此url,例如:{“data”:[{“label”:“back pain”,“value”:0.987453548451465}],“size”:1}。从标签el['label']我得到症状名称symptom['name']