· 5 years ago · Feb 18, 2021, 03:18 AM
1'''
2Este proyecto usa los datos de la API no oficial de Rick y Morty.
3
4Se obtienen una cantidad de episodios de la página 1 de la API.
5
6El comando with se usa para abrir el archivo.
7
8Se importa el módulo json para acceder a los datos en el archivo JSON
9Tanto JSON como los dict de python tienen estructuras muy similares.
10
11json.load convierte el archivo json en un diccionario de Python.
12'''
13import json
14import os
15
16traduccion = {
17 'id': 'identificador',
18 'name': 'nombre',
19 'air_date': 'fecha emisión',
20 'characters': 'personajes',
21 'episode': 'episodio',
22 'url': 'enlace',
23 'created': 'fecha creación',
24 'count': 'conteo',
25 'pages': 'páginas',
26 'next': 'siguiente',
27 'prev': 'previo',
28}
29
30def traducir(episode8):
31 for key,values in traduccion.items():
32 xkey = key
33 xnkey = values
34 if xkey in episode8:
35 episode8[xnkey] = episode8.pop(xkey)
36 return episode8
37
38def mostrar(capitulo):
39 print("Id: ", datos['results'][capitulo]['id'], '\n','\n')
40 print("Name: ", datos['results'][capitulo]['name'], '\n',)
41 print("Air Date :", datos['results'][capitulo]['air_date'], '\n')
42 print("Episode :", datos['results'][capitulo]['episode'], '\n')
43 #print('characters :', datos['results'][18]['characters'])
44 personas = (datos['results'][capitulo]['characters'])
45 i= 1
46 for personajes in personas:
47 print(i,'-', personajes)
48 i += 1
49 if i == 40:
50 break
51 print('')
52 print('Url :', datos['results'][capitulo]['url'], '\n')
53 print('Create Date :', datos['results'][capitulo]['created'], '\n')
54
55def mostrarTraducidas(capitulo):
56 print("Id: ", datos['results'][capitulo]['identificador'], '\n','\n')
57 print("Name: ", datos['results'][capitulo]['nombre'], '\n',)
58 print("Air Date :", datos['results'][capitulo]['fecha emisión'], '\n')
59 print("Episode :", datos['results'][capitulo]['episodio'], '\n')
60 #print('characters :', datos['results'][18]['characters'])
61 personas = (datos['results'][capitulo]['personajes'])
62 i= 1
63 for personajes in personas:
64 print(i,'-', personajes)
65 i += 1
66 if i == 40:
67 break
68 print('')
69 print('Url :', datos['results'][capitulo]['enlace'], '\n')
70 print('Create Date :', datos['results'][capitulo]['fecha creación'], '\n')
71
72
73with open('episodes.json') as archivo:
74 datos = json.load(archivo)
75
76 """Imprimir los datos el episodio 19 de forma legible"""
77 mostrar(18)
78
79 """Traducir llaves del episode 8 """
80 episode8 = datos['results'][7]
81 xepisode8 = traducir(episode8)
82 datos['results'][7] = xepisode8
83 #print(datos['results'][7])
84 """FIN Traducir llaves del episode 8 """
85
86 """Traducir llaves de todos los episodios"""
87 all_episodes = datos['results'] #Extraemos la lista "results" que se encuentra en el dict "datos"
88 for x in range(0,len(all_episodes)): #Iteramos la lista por su índice
89 xepisode= traducir(all_episodes[x]) #Se llama a la función con la posición de la lista para su traducción
90 all_episodes[x]= xepisode #Se reemplaza la posición de la lista con las llaves traducidas
91 datos['results'] = all_episodes #Se reemplaza la lista traducida en el diccionario datos
92 print(datos)
93 """FIN Traducir de todos los episodios """
94
95 """Imprimir los 3 últimos episodios con llaves traducidas"""
96 tresUltimos = datos['results'][-4:]
97 for episode in range(len(tresUltimos)-1):
98 episode1 = (tresUltimos[episode]['identificador'])
99 mostrarTraducidas(episode1)
100 #mostrar(episode)
101 """FIN Imprimir los 3 últimos episodios con llaves traducidas"""
102
103 """Cuántas veces aparecen los personajes 1,2,3 en todos los epidosios"""
104 Personaje_1_Rick_Sanchez = 0
105 Personaje_2_Morty_Smith = 0
106 Personaje_3_Summer_Smith = 0
107 for episodio in range(len(all_episodes)):
108 episodioPersonajes = all_episodes[episodio]['personajes']
109 for epiPersona in range(len(episodioPersonajes)):
110 personaSplit = episodioPersonajes[epiPersona].split('/')
111 if personaSplit[-1] == '1':
112 Personaje_1_Rick_Sanchez += 1
113 if personaSplit[-1] == '2':
114 Personaje_2_Morty_Smith += 1
115 if personaSplit[-1] == '3':
116 Personaje_3_Summer_Smith += 1
117 print('El personaje Rick Sanchez aparece {} veces'.format(Personaje_1_Rick_Sanchez))
118 print('El personaje Morty Smith aparece {} veces'.format(Personaje_2_Morty_Smith))
119 print('El personaje Summer Smith aparece {} veces'.format(Personaje_3_Summer_Smith))
120 #print(episodes)
121 """FIN Cuántas veces aparecen los personajes 1,2,3 en todos los epidosios"""
122
123
124