Skip to content

Commit 4008636

Browse files
committed
feat: #12 - Python
Reto #12-Python realizado por mrodara
1 parent d6c2fff commit 4008636

File tree

1 file changed

+216
-0
lines changed

1 file changed

+216
-0
lines changed
Lines changed: 216 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,216 @@
1+
############################# JSON Y XML CON PYTHON ######################################
2+
3+
4+
### TEORÍA MANEJO DE FICHEROS JSON CON PYTHON
5+
'''
6+
JSON (JavaScript Object Notation) es un formato de intercambio de datos muy utilizado por su sencillez y legibilidad.
7+
Python ofrece el módulo estándar json para trabajar con este formato.
8+
'''
9+
#import json
10+
#
11+
## Creación de un fichero json con datos
12+
#data = {
13+
# "name" : "manu",
14+
# "age" : 44,
15+
# "teacher" : True,
16+
# "subjects" : ["PIA", "SRI", "IAW"],
17+
# "detail" : {
18+
# "high_school" : "IES Al-Andalus",
19+
# "year" : 2024
20+
# }
21+
#}
22+
#
23+
#with open("data.json", "w", encoding="utf-8") as file:
24+
# json.dump(data, file, indent=4, ensure_ascii=False)
25+
#
26+
#print("Archivo json generado con éxito")
27+
#
28+
## Leer un fichero json
29+
#with open("data.json", "r", encoding="utf-8") as file:
30+
# content = json.load(file)
31+
#
32+
#print(type(content))
33+
#print(content)
34+
#
35+
## Añadir una nueva clave al diccionario a partir del contenido descargado
36+
#content["detail"]["experience"] = 7
37+
#
38+
#with open("data.json", "w", encoding="utf-8") as file:
39+
# json.dump(content, file, indent=4, ensure_ascii=False)
40+
#
41+
#print("Fichero actualizado desde el volcado")
42+
#
43+
#### FIN TEORÍA MANEJO DE FICHEROS JSON CON PYTHON
44+
#
45+
#### TEORÍA MANEJO DE FICHEROS XML CON PYTHON
46+
#'''
47+
#XML (eXtensible Markup Language) es un formato estructurado y extensible usado principalmente para datos jerárquicos.
48+
#Python ofrece el módulo xml.etree.ElementTree para trabajar con este formato.
49+
#'''
50+
#
51+
### Crear un archivo xml con python
52+
#import xml.etree.ElementTree as ET
53+
#
54+
## Crear el elemento raíz
55+
#raiz = ET.Element("curso")
56+
#
57+
## Añadir subelementos
58+
#ET.SubElement(raiz, "nombre").text = "Servicios de Red e Internet"
59+
#ET.SubElement(raiz, "profesor").text = "Manuel Jesús Rodríguez Arabi"
60+
#ET.SubElement(raiz, "año").text = "2024"
61+
#
62+
## Añadir un subelemento con atributos
63+
#materias = ET.SubElement(raiz, "materias")
64+
#materias.set("tipo", "obligatorias")
65+
#ET.SubElement(materias, "materia").text = "Python"
66+
#ET.SubElement(materias, "materia").text = "IA"
67+
#
68+
## Crear un árbol y guardar el archivo
69+
#arbol = ET.ElementTree(raiz)
70+
#arbol.write("datos.xml", encoding="utf-8", xml_declaration=True)
71+
#
72+
#print("Archivo XML creado con éxito.")
73+
#
74+
## Leer un archivo XML
75+
#arbol = ET.parse("datos.xml")
76+
#raiz = arbol.getroot()
77+
#
78+
## Recorrer los elementos
79+
#print("Contenido del archivo XML:")
80+
#for elem in raiz:
81+
# print(f"{elem.tag}: {elem.text}")
82+
#
83+
## Añadir un nuevo subelemento
84+
#nuevo_campo = ET.SubElement(raiz, "duración")
85+
#nuevo_campo.text = "100 horas"
86+
#
87+
## Guardar los cambios
88+
#arbol.write("datos_actualizados.xml", encoding="utf-8", xml_declaration=True)
89+
#
90+
#print("Archivo XML actualizado.")
91+
92+
### FIN TEORÍA MANEJO DE FICHEROS XML CON PYTHON
93+
94+
## EJERCICIO PROPUESTO
95+
import json
96+
import os
97+
from os.path import exists
98+
99+
if exists("user_data.json"):
100+
os.remove("user_data.json")
101+
if exists("user_data.xml"):
102+
os.remove("user_data.xml")
103+
104+
user_data = {
105+
"name" : "Manuel J. Rodríguez",
106+
"age" : 44,
107+
"birthday" : "03/01/1980",
108+
"programming-lamgs" : ["Python", "PHP", "C++", "Java"]
109+
}
110+
111+
with open("user_data.json", "w", encoding="utf-8") as file:
112+
json.dump(user_data, file, indent=4, ensure_ascii=False)
113+
114+
print(f"Fichero {file.name} creado con éxito!!!")
115+
116+
print()
117+
118+
print("Mostrando datos almacenados")
119+
120+
with open("user_data.json", "r", encoding="utf-8") as file:
121+
content = json.load(file)
122+
123+
print(type(content))
124+
125+
print("Fin del contenido del fichero JSON")
126+
127+
print()
128+
129+
print("Inicio de borrado del fichero JSON")
130+
#os.remove("user_data.json")
131+
print("Fichero eliminado con éxito!!!")
132+
133+
import xml.etree.ElementTree as ET
134+
135+
root = ET.Element("user_data")
136+
137+
ET.SubElement(root, "name").text = "Manuel J. Rodríguez"
138+
ET.SubElement(root, "age").text = "44"
139+
ET.SubElement(root, "birthdate").text = "03/01/1980"
140+
141+
languages = ET.SubElement(root, "languages")
142+
lang1 = ET.SubElement(languages, "language")
143+
lang1.text = "Python"
144+
lang2 = ET.SubElement(languages, "language")
145+
lang2.text = "PHP"
146+
lang3 = ET.SubElement(languages, "language")
147+
lang3.text = "Java"
148+
lang4 = ET.SubElement(languages, "language")
149+
lang4.text = "C++"
150+
151+
152+
tree = ET.ElementTree(root)
153+
tree.write("user_data.xml", encoding="utf-8", xml_declaration=True)
154+
155+
print("Archivo XML creado con éxito.")
156+
print()
157+
print("Lectura del fichero")
158+
read_tree = ET.parse("user_data.xml")
159+
read_root = read_tree.getroot()
160+
161+
for data in read_root:
162+
if data.tag != "languages":
163+
print(f"Etiqueta: {data.tag}, texto: {data.text}")
164+
else:
165+
for lang in data:
166+
print(f"Etiqueta: {lang.tag}, texto: {lang.text}")
167+
168+
print("Fin de lectura del fichero")
169+
print()
170+
print("Borrado del fichero")
171+
#os.remove("user_data.xml")
172+
print("Fichero eliminado con éxito!!!")
173+
174+
############################# EJERCICIO EXTRA ######################################
175+
176+
# Usaremos los ejemplos creados en el anterior ejercicio.
177+
178+
json_to_dict = {}
179+
xml_to_dict = {}
180+
users = []
181+
182+
with open ('user_data.json', "r", encoding="utf-8") as file:
183+
json_to_dict = json.load(file) # Devuelve un diccionario
184+
185+
my_tree = ET.parse("user_data.xml")
186+
my_root = my_tree.getroot()
187+
#xml_to_dict = {data.tag : data.text for data in my_root} #Generamos el diccionario
188+
i = 1
189+
for data in my_tree.getroot():
190+
if data.tag != "languages":
191+
xml_to_dict[data.tag] = data.text
192+
else:
193+
for lang in data:
194+
xml_to_dict[lang.tag + str(i)] = lang.text
195+
i += 1
196+
197+
print(json_to_dict)
198+
print()
199+
print(xml_to_dict)
200+
users.append(json_to_dict)
201+
users.append(xml_to_dict)
202+
print(users)
203+
os.remove("user_data.json")
204+
os.remove("user_data.xml")
205+
206+
207+
############################# FIN EJERCICIO EXTRA ######################################
208+
209+
210+
211+
212+
213+
214+
215+
216+
############################# FIN JSON Y XML CON PYTHON ######################################

0 commit comments

Comments
 (0)