Olá Ederson, tudo bem com você?
Peço desculpas pela demora em obter um retorno.
Não tem problema em utilizar um arquivo .csv, a lógica continua a mesma, porém, o que diferencia é que teremos que realizar a leitura deste arquivo e transformá-lo em um dicionário para se adaptar ao código fornecido no curso.
Então, suponha que temos um arquivo csv
com informações sobre nome, trabalho e idade de algumas pessoas, que possui as seguintes informações:
Nome,Trabalho,Idade
Lucas,Veterinário,27
Nicky,Programador,38
Mel,Vendedora,46
Para a leitura deste arquivo, podemos utilizar a biblioteca csv
que irá conter funções como o DictReader
para transformar os dados lidos em um dicionário, onde o cabeçalho - primeira linha do arquivo .csv
será mapeada como chave do dicionário que será criado:
import csv
nome_arquivo = 'pessoas.csv'
with open(nome_arquivo, encoding='utf-8') as f:
leitura = csv.DictReader(f)
for linha in leitura:
print(linha)
Resultado:
{'Nome': 'Lucas', 'Trabalho': 'Veterinário', 'Idade': '27'}
{'Nome': 'Nicky', 'Trabalho': 'Programador', 'Idade': '38'}
{'Nome': 'Mel', 'Trabalho': 'Vendedora', 'Idade': '46'}
No caso do código do curso, a lógica não se altera, só precisaremos de adicionar o código responsável pela leitura do arquivo .csv
que foi apresentado acima. Deixo abaixo o código completo e caso queira testar com o mesmo arquivo .csv
utilizado por mim, você pode efetuar o download dele clicando neste link:
Código Completo:
import csv
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "setup.settings")
import django
django.setup()
from animais.models import Animal
nome_do_arquivo = 'animais.csv'
lista_animais = []
with open(nome_do_arquivo, encoding='utf-8') as f:
leitura = csv.DictReader(f)
for linha in leitura:
lista_animais.append(linha)
def gerando_animais():
for animal in lista_animais:
nome = animal['nome_animal']
predador = animal['predador']
venenoso = animal['venenoso']
domestico = animal['domestico']
animal = Animal(nome_animal=nome, predador=predador, venenoso=venenoso, domestico=domestico)
animal.save()
gerando_animais()
print('animais gerados')
Para saber um pouco mais sobre a biblioteca csv
, recomendo a leitura do seguinte artigo que irá abordar com mais detalhes sobre esta biblioteca:
O artigo está em inglês caso tenha dificuldades com o idioma, recomendo o uso do tradutor que existe no navegador.
Lembre-se que pode contar sempre com o fórum Alura, seja para postar o seu desenvolvimento ou para tirar suas dúvidas.
Fico à disposição.
Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!