/python-e4-super-keroes

Primary LanguagePythonGNU Affero General Public License v3.0AGPL-3.0

Table of Contents

E4 - Super Keroes CSV

Nessa entrega, você poderá colocar em prática o que aprendeu sobre ler e escrever em arquivos csv e simular como seria uma rota de GET e de POST.

Objetivo

Esta entrega foi elaborada para você poder trabalhar seu conhecimento sobre leitura e escrita em arquivos CSV.

Preparativos

Crie um aquivo chamado kharacters.py nesse aquivo você irá colocar todas suas funções.

O cabeçalho do seu CSV deve seguir o seguinte padrão:

id,name,intelligence,power,strength,agility


Exercício 1

  • find_all_characters(filename)
    • Parâmetros:
      • filename: nome do arquivo que será aberto.
    • Procedimento:
      • Buscar por todos os personagens no arquivo CSV filename.
    • Retorno:
      • Retornar os personagens encontrados em formato de lista de dicionários.
      • Retornar uma lista vazia, caso nenhum personagem tenha sido encontrado.

Exemplos:

# Exemplo 1:

filename = "characters.csv"

found_character = find_all_characters(filename)

print(found_character)

> [{

"id": 1,

"name": "Hulk",

"intelligence": 9,

"power": 7,

"strength": 10,

"agility": 8

}]

Exercício 2

  • find_character_by_id(filename, character_id)
    • Parâmetros: 
      • filename: nome do arquivo que será aberto.
      • character_id: identificador único de cada personagem, representado pelo fieldname id.
    • Procedimento:
      • Buscar pelo personagem com id igual a character_id.
    • Retorno:
      • Retornar o personagem encontrado no formato de dicionário.
      • Retornar None caso não tenha sido encontrado.

Exemplos:

# Exemplo 1:

filename = "characters.csv"

character_id = 1

found_character = find_character_by_id(filename, character_id)

print(found_character)

> {

"id": 1,

"name": "Hulk",

"intelligence": 9,

"power": 7,

"strength": 10,

"agility": 8

}

# Exemplo 2:

filename = "characters.csv"

character_id = 2

found_character = find_character_by_id(filename, character_id)

print(found_character)

> None

Exercício 3

  • create_character(filename, **kwargs)
    • Parâmetros:
      • filename: nome do arquivo a ser escrito.
      • **kwargs: os dados do personagem que será criado.
  • Procedimento:
    • Se certificar de que existe fieldnames para o arquivo filename.
    • Obter o id do novo personagem a ser criado (pegar o último id cadastrado e adicionar um).
    • Inserir um novo personagem no arquivo filename.
  • Retorno:
    • Retornar o personagem criado em forma de dicionário.

Exemplos:

# EXEMPLO 1:

filename = "characters.csv"

new_character = {

"name": "Hulk",

"intelligence": 9,

"power": 7,

"strength": 10,

"agility": 8

}

created_character = create_character(filename, **new_character)

print(created_character)

> {

"id": 1,

"name": "Hulk",

"intelligence": 9,

"power": 7,

"strength": 10,

"agility": 8

}

-----

Entregáveis

Repositório

  • Link do repositório do GitLab
  • Código-fonte:
    • Arquivo kharacters.py.
  • Privacidade
    • Incluir ka-br-out-2020-correcoes como reporter.

Critérios de aceitação

pts Dado Quando É esperado
3.5 Função create_character  Executada com seus devidos parâmetros Um novo personagem é criado no arquivo com nome especificado em filename, a função retorna o personagem criado em forma de dicionário, contendo o id do personagem
3.5 Função find_character_by_id Executada com seus devidos parâmetros Um personagem é buscado e retornado em formato de dicionário
3 Função find_all_characters Executada com seus devidos parâmetros Uma lista de personagens em forma de dicionário é buscada e retornada

Boa diversão, devs!🦸‍♂️