Я получаю эту ошибку TypeError: строковые индексы должны быть целыми числами в моем Python коде - PullRequest
0 голосов
/ 10 января 2020

Итак, я получаю данные из API, который выглядит следующим образом

{
 "id": "f25d3e90",
 "name": "project"
}

, и вот часть моего кода

data = stratComLibrary.dataGet("v1/package/get-all-by-name?name="+project_num+"&substrMatch=true")
projectId = ""
modelId = ""
assemblyCadIds = []
for i in data:
    if i.get("number") == ticket_num:
        projectId = (i['projectId'])
        modelId = (i['modelId'])
        assemblyCadIds = (i.get('assemblyCadIds', []))

data2 = stratComLibrary.dataGet("v1/project/"+projectId+"?include=name%2C%20id")
projectName = ""
for i in data2:
    projectName = (i['name'])

, первый запрос работает для переменной данных, но затем я получаю эту ошибку во втором запросе

File "path", line 32, in main
projectName = (i['name'])
TypeError: string indices must be integers

всякий раз, когда я печатаю (i), он выдает мне строку "id" ... не слишком уверен, что здесь происходит, но это

1 Ответ

1 голос
/ 10 января 2020

"for i in data2" выполняет итерацию по ключам ввода данных data2. Так что i = "id" и "id" не является объектом.

То, что вы хотите: projectName = data2 ['name']

...