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?