Я словарь структурированным как так:Python: Appeneding в словарь списков
'valid_paths' : ['path_one', 'path_two', 'path_three']
Я хотел бы добавить новый путь к ключу этого значения. Я огляделся по самому чистому способу сделать это, но придумал.
path_four = 'path_four'
paths_to_be_added = dict['valid_paths']
paths_to_be_added.append(path_four)
dict['valid_paths'] = paths_to_be_added
Это прекрасно работает в моих тестовых пробегах. Я написал модульный тест для него, и он терпит неудачу с:
AttributeError: 'str' object has no attribute 'append'
И это имеет меня путает, когда я запускаю код моего объекта «paths_to_be_added» имеет атрибут списка, но в тестировании это строка. Что тут происходит?
Вы уверены, что это структура словаря? Кажется, что это на самом деле: '{'valid_paths':" ['path_one', 'path_two', 'path_three'] "}', где значение представляет собой строковое представление списка. – iCodez
О, подумайте, что, возможно, вы правы. Но как будет работать .append изначально, если это была строка, а не список? –
Это не так. 'append' доступен только в списках. Когда вы вызывали его раньше, значение должно было быть списком, а затем вы каким-то образом изменили его на строку. Вам нужно найти, где вы это сделали, и исправить это. – iCodez