0
respostas

[Dúvida] Por quê o python não está reconhecendo o método?

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

import csv
import json

class Dados:
    #Objetos e argumentos da classe
    def __init__(self, path, tipo_dados): #Argumentos para a classe
        self.path = path
        self.tipo_dados = tipo_dados
        self.dados = self.leitura_dados()
        self.nomes_colunas = self.get_colums()
        self.qtd_linhas = self.size_data()


    #Função de leitura Json
    def leitura_json(self):
        dados_json = []
        with open(self.path, 'r') as file:
            dados_json = json.load(file)
        return dados_json

    #Função de Leitura CSV
    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

    #Função de leitura dos dados: o segundo parâmetro define quais das duas funções acima será usada. O Primeiro é o path do arquivo
    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
    
    #Função para pegar os nomes das colunas
    def get_colums(self):
        return list(self.dados[0].keys())
    
    #Renomear as colunas
    def rename_colums(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.nomes_colunas = self.get_colums()

    #Leitura de tamanho dos dados
    def size_data(self):
        return len(self.dados)
    

    #Junção dos dados
    def join(dadosA, dadosB):
        combined_list = []
        combined_list.extend(dadosA.dados)
        combined_list.extend(dadosB.dados)
        return Dados(combined_list, 'list')

Olá, estou seguindo a risca o que o professor faz nos videos para eu poder acompanhar e entender o que está acontecendo aos poucos. Mas estou tendo problemas quando percebi que ao fazer a junção dos dados, o resultado não vem com o "Data das vendas" como ele fez no video. E notei que em alguns casos, como na imagem, o python não reconhece o self.dados que foi criado dentro da classe, e não sei dizer o porque sendo que a sintaxe esta certa e a indentação também. Alguém saberia me explicar se há algo errado com o código da classe?