Использование словарей в скрипте

Требуется создать три словаря

name = {} #Имя
age = {} #Возраст
country = {} #Страна

В каждый из словарей добавлять message.chat.id(id пользователя), чтобы далее проверять по id хранимые данные в словаре. В функции собственно пытаюсь сделать что-то наподобии


    name[usr_id] = message.text
    age[usr_id] = message.text
    country[usr_id] = message.text

и получаю ошибку в лицо

TypeError: 'str' object does not support item assignment

Ответы (1 шт):

Автор решения: SmellyNS

Нельзя создавать переменные с одинаковым именем. У вас может быть либо строковая переменная name, либо словарь name.

Используйте как-то так:

name = str(message.text)
nameDict = Dict()
nameDict[uid] = name

Ошибка возникает из-за того, что вы переопределяете name, как строку

name = str(...)

и после этого пытаетесь индексировать ее, о чем и говорит ошибка.

TypeError: 'str' object does not support item assignment

В вольном переводе:

ОшибкаТипа: объект 'str' (строка) не поддерживает присвоение элементов

→ Ссылка