Skip to content

Commit 9cfb4e3

Browse files
authored
Merge pull request mouredev#3808 from JAFeito/main
#12 - Python
2 parents 4ac4f9e + 7298b33 commit 9cfb4e3

File tree

1 file changed

+88
-0
lines changed

1 file changed

+88
-0
lines changed
+88
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
"""
2+
IMPORTANTE: Sólo debes subir el fichero de código como parte del ejercicio.
3+
4+
EJERCICIO:
5+
Desarrolla un programa capaz de crear un archivo XML y JSON que guarde los
6+
siguientes datos (haciendo uso de la sintaxis correcta en cada caso):
7+
- Nombre
8+
- Edad
9+
- Fecha de nacimiento
10+
- Listado de lenguajes de programación
11+
Muestra el contenido de los archivos.
12+
Borra los archivos.
13+
14+
DIFICULTAD EXTRA (opcional):
15+
Utilizando la lógica de creación de los archivos anteriores, crea un
16+
programa capaz de leer y transformar en una misma clase custom de tu
17+
lenguaje los datos almacenados en el XML y el JSON.
18+
Borra los archivos.
19+
"""
20+
import os
21+
import xml.etree.ElementTree as xml
22+
import json
23+
# XML
24+
datos = {
25+
"nombre":"Jose",
26+
"edad":45,
27+
"nacido":"01/03/79",
28+
"aficiones":["videojuego", "anime", "programar"]
29+
}
30+
31+
def crear_xml():
32+
root = xml.Element("datos")
33+
for key, value in datos.items():
34+
child = xml.SubElement(root, key)
35+
if isinstance(value,list):
36+
for item in value:
37+
xml.SubElement(child, "item").text = item
38+
else:
39+
child.text = str(value)
40+
tree = xml.ElementTree(root)
41+
tree.write ("JAFeito.xml")
42+
crear_xml()
43+
with open("JAFeito.xml", "r") as archivo:
44+
print(archivo.read())
45+
os.remove("JAFeito.xml")
46+
#JSON
47+
def crear_json():
48+
with open ("JAFeito.json", "w") as archivo:
49+
json.dump(datos, archivo)
50+
crear_json()
51+
with open ("JAFeito.json", "r") as archivo:
52+
print(archivo.read())
53+
os.remove("JAFeito.json")
54+
#EXTRA
55+
crear_xml()
56+
crear_json()
57+
58+
class Datos:
59+
def __init__ (self, nombre, edad, fecha_nacimiento, aficiones) -> None:
60+
self.nombre = nombre
61+
self.edad = edad
62+
self.fecha_nacimiento = fecha_nacimiento
63+
self.aficiones = aficiones
64+
65+
#XML
66+
67+
with open("JAFeito.xml", "r") as archivo:
68+
root = xml.fromstring(archivo.read())
69+
nombre = root.find("nombre").text
70+
edad = root.find("edad").text
71+
fecha_nacimiento = root.find("nacido").text
72+
aficiones = []
73+
for item in root.find("aficiones"):
74+
aficiones.append(item.text)
75+
76+
datos_xml = Datos( nombre, edad, fecha_nacimiento, aficiones)
77+
print(datos_xml.__dict__)
78+
#JSON
79+
with open("JAFeito.json", "r") as archivo:
80+
dic_json = json.load(archivo)
81+
nombre = dic_json["nombre"]
82+
edad = dic_json["edad"]
83+
fecha_nacimiento = dic_json["nacido"]
84+
aciciones = dic_json["aficiones"]
85+
datos_json = Datos(nombre, edad, fecha_nacimiento, aficiones)
86+
print(datos_json.__dict__)
87+
os.remove("JAFeito.xml")
88+
os.remove("JAFeito.json")

0 commit comments

Comments
 (0)