forked from WoMakersCode/intro-ao-python
-
Notifications
You must be signed in to change notification settings - Fork 0
/
07_desafio_14.py
110 lines (91 loc) · 3.81 KB
/
07_desafio_14.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# Desafio 14 - JSON e CSV
import sys
import requests
import json
# Crie uma aplicação que lê na linha de comando o nome de um feitiço
# Utilize a biblioteca requests para ler o JSON disponível em
# https://construdelas.blob.core.windows.net/intro-ao-python/feiticos.json
# Imprima para o usuário os dados sobre o feitiço que ele solicitou.
# Se o feitiço não foi encontrado, lance uma exceção.
# "Summoning Charm": {
# "encantamento": "Accio",
# "tipo": "Charm",
# "descricao": "Summons an object",
# "cor_da_luz": "None"
# }
# _____________________________ MODELO 1 - CASE SENSITIVE _________________________
# def pesquisa():
# feitico = input('Digite o nome de um Feitiço para consultar: ')
# arquivo_dict = buscar_json() # dicionário gerado pela função 'buscar_json'
# try:
# if arquivo_dict[feitico]:
# print('='*40)
# print('\n')
# print(f'Feitiço: ', feitico)
# for chave, valor in arquivo_dict[feitico].items():
# resultado = (f'{chave}: {valor}')
# print(resultado)
# print('\n')
# print('='*40)
# except KeyError:
# print('\n')
# print(" ****** FEITIÇO NÃO ENCONTRADO! ******")
# print('\n')
# print('='*40)
# # FUNÇÃO PARA BAIXAR O ARQUIVO JSON DA URL E CONVERTER EM DICT:
# def buscar_json():
# # request.get - baixa uma página html
# resposta = requests.get(
# "https://construdelas.blob.core.windows.net/intro-ao-python/feiticos.json")
# # content - usado para acessar dados de carga útil no formato de bytes brutos.
# arquivo_dict = json.loads(resposta.content)
# # A função 'json.loads()' converte uma JSON string para o formato de Python 'dict'.
# print('\n')
# print('='*40)
# print('Código da resposta:', resposta.status_code)
# # 404: não encontrado, 200: ok
# print('Tipo da resposta:', resposta.headers['Content-Type']) # text/html
# # print(resposta.text)
# return arquivo_dict
# pesquisa()
# _____________________________ MODELO 2 - NO-CASE SENSITIVE _________________________
# FUNÇÃO PARA SOLICITAR QUE O USUÁRIO DIGITE O NOME DO FEITIÇO
def entrada():
feitico = input('Digite o nome de um Feitiço para consultar: ')
feitico = feitico.lower()
return feitico
# FUNÇÃO PARA PESQUISAR SE O NOME DIGITADO PELO USUÁRIO TEM NO ARQUIVO 'arquivo_dict'
def pesquisa():
feitico = entrada() # feitiço digitado pelo usuário
arquivo_dict = buscar_json() # dicionário gerado pela função 'buscar_json'
try:
if arquivo_dict[feitico]:
print('='*40)
print('Feitiço encontrado!!!\n')
print(f'Feitiço: ', feitico.upper())
for chave, valor in arquivo_dict[feitico].items():
resultado = (f'{chave}: {valor}')
print(resultado.title())
print('\n')
print('='*40)
except KeyError:
print('\n')
print(" ****** FEITIÇO NÃO ENCONTRADO! ******")
print('\n')
print('='*40)
# FUNÇÃO PARA BAIXAR O ARQUIVO JSON DA URL E CONVERTER EM DICT:
def buscar_json():
# request.get - baixa uma página html
resposta = requests.get(
"https://construdelas.blob.core.windows.net/intro-ao-python/feiticos.json")
# content - usado para acessar dados de carga útil no formato de bytes brutos.
arquivo_dict = json.loads(resposta.content.lower())
# A função 'json.loads()' converte uma JSON string para o formato de Python 'dict'.
print('\n')
print('='*40)
print('Consultando o site....\nCódigo da resposta:', resposta.status_code)
# 404: não encontrado, 200: ok
print('Tipo da resposta:', resposta.headers['Content-Type']) # text/html
# print(resposta.text)
return arquivo_dict
pesquisa()