Ошибка при сложении float (python)
Пытаюсь в цикле сложить float числа, на что получаю ошибку. Специально добавил вывод значений и их тип.
for road in object_data['roadway_data']:
if object_data['roadway_data'][road]['okrug_id'] in roadway:
print(roadway[object_data['roadway_data'][road]['okrug_id']]['procent'], type(roadway[object_data['roadway_data'][road]['okrug_id']]['procent']))
print(object_data['roadway_data'][road]['procent'], type(object_data['roadway_data'][road]['procent']))
roadway[object_data['roadway_data'][road]['okrug_id']]['procent'] += object_data['roadway_data'][road]['procent'],
roadway[object_data['roadway_data'][road]['okrug_id']]['num_exec'] += 1
else:
roadway[object_data['roadway_data'][road]['okrug_id']] = {'okrug_name': object_data['roadway_data'][road]['okrug_name'],
'procent': object_data['roadway_data'][road]['procent'],
'num_exec': 1}
Данные - обычные словари. Напоминать мне что в ошибке написано о сложении числа и списка не нужно. В первых строках ошибки указаны числа и их тип, но в цикле они не складываются. Если просто сложить числа, все срабатывает как положено. Даже предположить не могу в чем проблема.
Ответы (1 шт):
Автор решения: n1tr0xs
→ Ссылка
У вас стоит , в конце строки. Python воспринимает эту запись эквивалентной (object_data['roadway_data'][road]['procent'], ), а это не float, а tuple.
Решение проблемы - убрать запятую.
roadway[object_data['roadway_data'][road]['okrug_id']]['procent'] += object_data['roadway_data'][road]['procent']
