Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Listas, tuplas e dictionaries e lógica de programção

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 é:

  1. A lógica de código comentada após cada linha é correta, ou há outra interpretação ?
  2. 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 = {}" ?

1 resposta
solução!

Olá, Gabriel, tudo bem?

O código em questão está lendo um conjunto de dados data_csv, criando um novo dicionário temporário para cada linha, substituindo as chaves antigas pelas novas chaves definidas em key_mapping e adicionando o dicionário temporário à nova lista de dados new_data_csv.

O uso de colchetes ("[]") é porque em Python é uma maneira de acessar, adicionar ou definir valores em um dicionário. Quando você faz temporary_dict[key_mapping.get(key)] = object, você está definindo um novo par chave-valor no dicionário temporário. A chave é key_mapping.get(key), que retorna o novo nome da chave, e o valor é o objeto que é o valor correspondente à antiga chave no dicionário original.

Abaixo deixo como complementação a documentação que poderá enriquecer seus estudos. Você poderá utilizar o tradutor do navegador.

Espero que isso tenha esclarecido suas dúvidas.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!