6
respostas

[Dúvida] não consigo importar a classe

import csv
import json
from processamento_dados import Dados
def leitura_csv(path_csv):
    import csv
    dados_csv = []
    with open(path_csv, 'r') as file:
        spamreader = csv.DictReader(file, delimiter=',')
        for row in spamreader:
            dados_csv.append(row)
            
    return dados_csv

def leitura_json(path_json):
    import json
    dados_json = []
    with open(path_json, 'r') as file:
     dados_json=json.load (file)
    
    return dados_json

def leitura_dados(path, tipo_arquivo):
    dados=[]
    if tipo_arquivo=='csv':
        dados=leitura_csv(path)
    elif tipo_arquivo=='json':
        dados=leitura_json(path)
    return (dados)       

def get_columms(dados):
    return list(dados[-1].keys()) 

def change_columns(dados, key_mapping):
        new_dados_csv = []
    
        for old_dict in dados:
            dict_temp = {}
            for old_key, value in old_dict.items():
                dict_temp[key_mapping[old_key]] = value
            new_dados_csv.append(dict_temp)
            
        return new_dados_csv

def size_dados(dados):
  return len(dados)

def join_data(dadosA,dadosB):
   
    combined_list = []
    combined_list.extend(dadosA)
    combined_list.extend(dadosB)
    return combined_list
def transformando_dados_tabela(dados, nomes_colunas):
    
    dados_combinados_tabela = [nomes_colunas]

    for row in dados:
        linha = []
        for coluna in nomes_colunas:
            linha.append(row.get(coluna, 'Indisponivel'))
        dados_combinados_tabela.append(linha)
    
    return dados_combinados_tabela
def salvando_dados(dados, path):
    with open(path, 'w') as file:
        writer =csv.writer(file)
        writer.writerows(dados)


path_json='/root/documentos/pipeline_dados/data_raw/dados_empresaA.json'
path_csv='/root/documentos/pipeline_dados/data_raw/dados_empresaB.csv'
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'}

# print("--------------------------------------------------")

# dados_json=leitura_dados(path_json,'json')
# nome_colunas_json=get_columms(dados_json)
# json_length=size_dados(dados_json)

# print("--------------------------------------------------")

# dados_csv=leitura_dados(path_csv,'csv')
# nome_colunas_csv=get_columms(dados_csv)
# print("---------------------------------")

# dados_csv=change_columns(dados_csv,key_mapping)
# nome_colunas_csv=get_columms(dados_csv)
# csv_length=size_dados(dados_csv)
# dados_fusao=join_data(dados_json,dados_csv)
# nome_colunas_fusao=get_columms(dados_fusao)
# tamanho_dados_fusao=size_dados(dados_fusao)
# print("--------------------------------------------------")
# # Salvando dados

# dados_fusao_tabela = transformando_dados_tabela(dados_fusao, nome_colunas_fusao)
# #Salvando dados

# dados_fusao_tabela = transformando_dados_tabela(dados_fusao, nome_colunas_fusao)

# path_dados_combinados = '/root/documentos/pipeline_dados/data_processed/dados_combinados.csv'

# salvando_dados(dados_fusao_tabela, path_dados_combinados)

dados_empresaA = Dados(path_json, 'json')
print(dados_empresaA)

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

6 respostas

Elson! Tudo bem?

Pelo print não consegui identificar nenhum erro em seu projeto que o causasse, notei apenas uma pequena diferença na estrutura do código que contém um key_maping antes da instância da classe. Como sugestão, organize essa estrutura para que o código possa ser lido de maneira lógica, como na aula até o momento. Coloque o código abaixo antes do Key_maping.

dados_empresaA = Dados(path_json, 'json');
print(dados_empresaA)

Rode novamente e observe se funciona como esperado. Além disso, tente reiniciar o VS Code para descartamos qualquer instabilidade que pode ter ocorrido e

Caso o erro persista, compartilhe o link do Github contendo o código completo para podermos realizar os testes e buscar outras soluções.

Bons estudos e até mais!

isso é o que aparece quando rodo Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Oii, Elson! Tudo bem?

O erro indica que não identificou o caminho de importação da classe Dados. Como sugestão tente importar corretamente da seguinte forma:

import sys sys.path.append('/caminho/para/sua/pasta') from processamento_dados import Dados 

No código acima é usado módulo sys para que a importação de Dados aconteça. Em '/caminho/para/sua/pasta' adicione o seu caminho completo onde o arquivo processamento_dados.py está localizado.

Caso outro erro surja, compartilhe o link do seu Github contendo o código completo para podermos dar uma olhada e buscar outras soluções.

Bons estudos!

estou há 2 dias esperando resposta sem conseguir avançar

Oi, Elson!

Agradeço por aguardar o retorno.

O link disponibilizado não está disponível (imagem) e ao procurar o seu user no Github, ele informa que não contém repositórios. Então, seguindo o que está pelo print, sugiro editar o seguinte caminho:

De:

/root/documentos/pipeline_dados/scripts/processamento_dados.py

Para:

scripts/processamento_dados.py

Bons estudos e até mais!