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)
  1. По умолчанию в цикле for (если перебирается словарь) перебираются только ключи. .items() возвращает пару: ключ, значение (k и v). Мы используем v.
→ Ссылка