Quando vou salvar os dados com o comando:
path_dados_combinados = './data_processed/dados.combinados.csv'
dados_fusao.salvando_dados(path_dados_combinados)
print(path_dados_combinados)
eu entro no arquivo e me deparo com 26 mil linhas, não sei identificar o erro, pois acho que está igual durante as aulas. Segue código do arquivo 'fusao_mercado_fev.py':
# Extract
dados_empresaA = Dados(path_json, 'json')
print(f"Coluna empresa A {dados_empresaA.nome_colunas}")
print(f"Qtd de Linhas: {dados_empresaA.qtd_linhas}")
dados_empresaB = Dados(path_csv, 'csv')
print(f"Coluna empresa B {dados_empresaB.nome_colunas}")
print(f"Qtd de Linhas: {dados_empresaB.qtd_linhas}")
# Transform
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'}
dados_empresaB.rename_collumns(key_mapping)
print(f"Coluna Atualizada {dados_empresaB.nome_colunas}")
dados_fusao = Dados.join(dados_empresaA, dados_empresaB)
print(f"Nome de Coluna Fusão: {dados_fusao.nome_colunas}")
print(f"Qtd linhas Fusão: {dados_fusao.qtd_linhas}")
# Load
path_dados_combinados = './data_processed/dados.combinados.csv'
dados_fusao.salvando_dados(path_dados_combinados)
print(path_dados_combinados)
e agora o arquivo 'processamento_dados.py':
import json
import csv
class Dados:
def __init__(self, path, tipo_dados):
self.path = path
self.tipo_dados = tipo_dados
self.dados = self.leitura_dados()
self.nome_colunas = self.get_collumns()
self.qtd_linhas = self.size_data()
def leitura_json(self):
dados_json = []
with open(self.path, 'r') as file:
dados_json = json.load(file)
return dados_json
def leitura_csv(self):
dados_csv =[]
with open(self.path, 'r') as file:
spamreader = csv.DictReader(file, delimiter=',')
for row in spamreader:
dados_csv.append(row)
return dados_csv
def leitura_dados(self):
dados = []
if self.tipo_dados == 'csv':
dados = self.leitura_csv()
elif self.tipo_dados == 'json':
dados = self.leitura_json()
elif self.tipo_dados == 'list':
dados = self.path
self.path = 'Lista em memoria'
return dados
def get_collumns(self):
return list(self.dados[-1].keys())
def rename_collumns(self, key_mapping):
new_dados = []
for old_dict in self.dados:
dict_temp = {}
for old_key, value in old_dict.items():
dict_temp[key_mapping[old_key]] = value
new_dados.append(dict_temp)
self.dados = new_dados
self.nome_colunas = self.get_collumns()
def size_data(self):
return len(self.dados)
def join(dadosA, dadosB):
combined_list = []
combined_list.extend(dadosA.dados)
combined_list.extend(dadosB.dados)
return Dados(combined_list, 'list')
def transformando_dados_tabela(self):
dados_combinados_tabela = [self.nome_colunas]
for row in self.dados:
linha = []
for coluna in self.nome_colunas:
linha.append(row.get(coluna, 'Indisponivel'))
dados_combinados_tabela.append(linha)
return dados_combinados_tabela
def salvando_dados(self, path):
dados_combinados_tabela = self.transformando_dados_tabela()
with open(path, 'w') as file:
writer =csv.writer(file)
writer.writerows(dados_combinados_tabela)
o terminal quando eu rodo está correto, so quando abro o caminho que coloquei como atalho dá errado quando entro
fica desse jeito:
espero que possam me ajudar. Agradeço desde já!