## Ejercicio 3 ##
import json
import re
def eliminarPalabra(archivoJSON):
# regex para detectar los caracteres especiales en cuestión
reg_carac_espec = r"\w*[@$^/!?*&]+\w*"
# lectura del archivo con extensión JSON
with open(archivoJSON, 'r', encoding='utf-8') as a:
contenido = json.load(a)
# función recursiva para limpiar el archivo JSON
def limpiar_archivo_json(objeto):
if isinstance(objeto, dict):
return {c: limpiar_archivo_json(v) for c, v in objeto.items()}
elif isinstance(objeto, list):
return [limpiar_archivo_json(i) for i in objeto]
elif isinstance(objeto, str):
return ' '.join([palabra for palabra in objeto.split()
if not re.search(reg_carac_espec, palabra)])
else:
return objeto
# limpieza del archivo utilizando la función recursiva
contenido_sin_carac_espec = limpiar_archivo_json(contenido)
# apertura del archivo en modo escritura
with open(archivoJSON, 'w', encoding='utf-8') as archivo_final:
json.dump(contenido_sin_carac_espec, archivo_final, ensure_ascii=False, indent=4)
# Prueba de verificación
eliminarPalabra('C:\temp\miArchivoJSON.json')