TypeError: string indices must be integers при переборе данных из массива
Есть массив данных:
data = {
"pages": 1,
"items": {
"1": (1, 2, 3),
"2": (4, 5, 6),
"3": (7, 8, 9)
}
}
Они перебираются через:
for d in data["items"]:
udata = data["items"][d]
print(udata)
Вывод:
(1, 2, 3)
TypeError: string indices must be integers
Ответы (1 шт):
Автор решения: чистов_n
→ Ссылка
Ваш код работает корректно (возможно ваш код использует какие-то другие данные и с ними не работает).
Но я бы написал по другому:
data = {
"pages": 1,
"items": {
"1": (1, 2, 3),
"2": (4, 5, 6),
"3": (7, 8, 9)
}
}
for k, v in data["items"].items(): # (1)
udata = v
print(udata)
- По умолчанию в цикле for (если перебирается словарь) перебираются только ключи.
.items()
возвращает пару: ключ, значение (k
иv
). Мы используемv
.