← Все вопросы

TypeError: string indices must be integers — лезу в строку по ключу

Задан 1 месяц назад1.1к просмотров1 ответ
5

Думал, что в переменной словарь, обращаюсь по ключу, а падает TypeError: string indices must be integers:

user = "Аня"
print(user["name"])

Что значит "string indices must be integers"?

1 ответ

10
✓ Принятый ответ — помог автору

В user лежит строка, а не словарь. У строки можно брать символ только по числовому индексу (user[0]), а по текстовому ключу "name" — нельзя. Питон говорит "индексы строки должны быть целыми числами".

Если тебе нужен словарь — заведи его явно:

user = {"name": "Аня"}
print(user["name"])  # Аня

Часто эта ошибка всплывает, когда из JSON/функции пришла строка там, где ты ждал словарь — проверь type(user), чтобы убедиться, что у тебя реально лежит в переменной.

Ваш ответ

Войдите, чтобы ответить на вопрос.