Запись в список из словарей в цикле

Столкнулся с проблемой при записи новых данных в список из словарей.

При прогоне цикла через обычное копирование получалось что-то такое:

[{Ингредиент: Молоко, Количество: 500, Ед: г}]
[{Ингредиент: Яйца, Количество: 500, Ед: г}, {Ингредиент: Яйца, Количество: 500, Ед: г}]
[{Ингредиент: Творог, Количество: 500, Ед: г}, {Ингредиент: Творог, Количество: 500, Ед: г}, {Ингредиент: Творог, Количество: 500, Ед: г}]
etc

Конструкция ingredient[‘measure’] = ingredient_info[2] оказалось, что меняет по всем списке ingredient_list, содержащем словари, значения по ключу ‘measure’.

Решить проблему удалось через полное копирование списка ingredient в список «а» через a = copy.deepcopy(ingredient). Функция находится в библиотеке copy, которую надо импортировать.

import copy

def cook_book_collector(file_path):
	cook_book = {}
	with open(file_path) as menu: 
		for line in menu: # проходимся по строкам
			dish = line.strip() # 1 строка = название блюда			
			ingredient = {}	# словарь для информации по ингредиенту	
			ingredient_list = [] # список ингредиентов
			for ing_number in range(1, int(menu.readline().strip())+1): # запускаем цикл от 1 до N ингредиентов
				ingredient_info = menu.readline().strip() # читаем строку, затем разбиваем ее на список, затем заполняем словарь ингредиентов
				ingredient_info = ingredient_info.split(' | ')
				
				ingredient['ingridient_name'] = ingredient_info[0]
				ingredient['quantity'] = ingredient_info[1]
				ingredient['measure'] = ingredient_info[2]
				a = copy.deepcopy(ingredient) # копируем словарь в новую переменную, чтобы на строках выше потом не переписались все данные
				ingredient_list.append(a) # добавляем в конец списка инфу по каждому новому ингредиенту
								
			cook_book[dish] = ingredient_list
			menu.readline()
		return cook_book