1
+ """
2
+ /*
3
+ * IMPORTANTE: Sólo debes subir el fichero de código como parte del ejercicio.
4
+ *
5
+ * EJERCICIO:
6
+ * Desarrolla un programa capaz de crear un archivo XML y JSON que guarde los
7
+ * siguientes datos (haciendo uso de la sintaxis correcta en cada caso):
8
+ * - Nombre
9
+ * - Edad
10
+ * - Fecha de nacimiento
11
+ * - Listado de lenguajes de programación
12
+ * Muestra el contenido de los archivos.
13
+ * Borra los archivos.
14
+ *
15
+ * DIFICULTAD EXTRA (opcional):
16
+ * Utilizando la lógica de creación de los archivos anteriores, crea un
17
+ * programa capaz de leer y transformar en una misma clase custom de tu
18
+ * lenguaje los datos almacenados en el XML y el JSON.
19
+ * Borra los archivos.
20
+ */
21
+ """
22
+
23
+ import json
24
+ import os
25
+ import xml .etree .ElementTree as ET
26
+
27
+ archivo_json = "santyjl.json"
28
+ archivo_xml = "santyjl.xml"
29
+
30
+ #json
31
+ with open (archivo_json , "w" ) as archivo :
32
+ datos = {
33
+ "nombre" :"Santiago" ,
34
+ "edad" :14 ,
35
+ "fecha_de_nacimiento" :"20/01/2010" ,
36
+ "lenguajes_de_programacion" : ["python" , "arduino" ]
37
+ }
38
+
39
+ json .dump (datos , archivo ) #escribe archivos python y lo combierte a json
40
+
41
+ #xml
42
+ raiz = ET .Element ("Datos-Personales" )
43
+
44
+ nombre = ET .SubElement (raiz , "nombre" )
45
+ edad = ET .SubElement (raiz , "edad" )
46
+ fecha_de_nacimiento = ET .SubElement (raiz , "fecha-de-nacimiento" )
47
+ lenguajes_de_programacion = ET .SubElement (raiz , "lenguajes" )
48
+
49
+ nombre .text = "santiago"
50
+ edad .text = "14"
51
+ fecha_de_nacimiento .text = "20/01/2010"
52
+ lenguajes_de_programacion .text = "python & arduino"
53
+
54
+ #creando archivo xml
55
+ xml = ET .ElementTree (raiz )
56
+ xml .write (archivo_xml , encoding = "UTF-8" , xml_declaration = True )
57
+
58
+ #clase para leer archivos xml y json
59
+ class ManejadorArchivos :
60
+ def __init__ (self , archivo_json , archivo_xml ):
61
+ self .archivo_json = archivo_json
62
+ self .archivo_xml = archivo_xml
63
+
64
+ def leer_json (self ):
65
+ with open (self .archivo_json , "r" ) as archivo :
66
+ return json .load (archivo )
67
+
68
+ def leer_xml (self ):
69
+ parseo = ET .parse (self .archivo_xml )
70
+ raiz = parseo .getroot ()
71
+ datos = {}
72
+
73
+ for dato in raiz :
74
+ datos [dato .tag ] = dato .text
75
+ return datos
76
+
77
+ def eliminar_archivo_json (self ):
78
+ os .remove (self .archivo_json )
79
+
80
+ def eliminar_archivo_xml (self ):
81
+ os .remove (self .archivo_xml )
82
+
83
+
84
+ # Crear instancia de la clase
85
+ manejador = ManejadorArchivos (archivo_json = "santyjl.json" , archivo_xml = "santyjl.xml" )
86
+ datos_json = manejador .leer_json ()
87
+ datos_xml = manejador .leer_xml ()
88
+ print (datos_json )
89
+ print (datos_xml )
90
+
91
+ # Eliminar archivo JSON
92
+ manejador .eliminar_archivo_json ()
93
+ manejador .eliminar_archivo_xml ()
0 commit comments