No seguinte código:
key_mapping = {
'Nome do Item': 'Nome do Produto',
'Classificação do Produto': 'Categoria do Produto',
'Valor em Reais (R$)': 'Preço do Produto (R$)',
'Quantidade em Estoque': 'Quantidade em Estoque',
'Nome da Loja': 'Filial',
'Data da Venda': 'Data da Venda'
}
new_data_csv = [] #Cria um variavél que será uma lista de dicionários. A variável nessa etapa encontra-se vazia.
for old_dict in data_csv: #Para os valores nomeados de "old_dict" dentro do leitor do data asset csv "data_csv"
temporary_dict = {} #Cria um dicionário temporário
for key, object in old_dict.items(): #old_dict.items retornar uma chave e um objeto. O for: "Sobre cada key e objeto retornado pelo .items"...
temporary_dict[key_mapping.get(key)] = object #Dicionário temporário[itere sobre cada key um novo nome de key, localizado na função key_mapping]
new_data_csv.append (temporary_dict) #No final da lista iterável que esta atualmente vazia, adicione os valores do dicionário temporário.
new_data_csv[0] #Testa a sucessabilidade do código.
Esse fragmento de código fora fornecido dentro do curso de engenheria de dados(pipeline) da Alura e tem como objetivo renomear colunas de um arquivo CSV, que se repetem até o final dos índices por terem sido organizados como uma lista de dicionários.
A minha dúvida é:
- A lógica de código comentada após cada linha é correta, ou há outra interpretação ?
- Na linha:
temporary_dict[key_mapping.get(key)] = object #Dicionário temporário[itere sobre cada key um novo nome de key, localizado na função key_mapping]
Por que se deve usar colchetes ("[]" ?) Como ocorre especificamente essa relação entre o key_mapping.get(key) e a atribuição dos valores ao dicionário temporário "temporary_dict = {}" ?