Notas de Luis

Por ejemplo tenemos esta data en formato json:

import json
 
data = {"nombre": "Juan", "edad": 25, "ciudad": "Madrid"}

Podemos convertir esta data en un objeto python:

json_data = json.dumps(data)
print(json_data)

El resultado sería este:

ESCRIBIR SOBRE FICHERO JSON

También podemos escribir sobre un fichero json que en un principio está vacío:

Por tanto este sería el código para escribir sobre él:

data = {"nombre": "Juan", "edad": 25, "ciudad": "Madrid"}
 
# Escribir un archivo JSON
with open("data.json", "w") as f:
    json.dump(data, f)

Y si lo ejecutamos habremos escrito el contenido de la variable data dentro de json:

Y por ejemplo podemos leer el contenido de un json de esta forma:

# Leer un archivo JSON
with open("data.json", "r") as f:
    data = json.load(f)
 
print(data["ciudad"])  # Imprime "Madrid"

y leemos el resultado:

AGRUPAR EN LISTAS AQUELLOS JSON QUE TENGAN UN ELEMENTO EN COMÚN (Por ejemplo la fecha)

data = [
    {"fecha": "07/12/2023", "edad": 25, "ciudad": "Madrid"},
    {"fecha": "01/11/2022", "edad": 25, "ciudad": "Oviedo"},
    {"fecha": "10/11/2023", "edad": 25, "ciudad": "León"},
    {"fecha": "07/12/2023", "edad": 25, "ciudad": "Madrid"},
    {"fecha": "01/11/2022", "edad": 25, "ciudad": "Oviedo"},
    {"fecha": "10/11/2023", "edad": 25, "ciudad": "León"}
]
 
fechas_dict = {}
 
for dato in data:
    fecha = dato["fecha"]
    if fecha not in fechas_dict:
        fechas_dict[fecha] = [dato]  # crea una nueva lista para la fecha
    else:
        fechas_dict[fecha].append(dato)  # agrega el dato a la lista existente
 
fechas_ordenadas = sorted(fechas_dict.items())
 
for fecha, datos in fechas_ordenadas:
    print(f"Fecha: {fecha}")
    for dato in datos:
        print(dato)

Por último, si quisiéramos leer la data de un archivo json, lo haríamos de esta forma:

import json
 
with open('data.json', 'r') as f:
    data = json.load(f)
 
fechas_dict = {}
 
for dato in data:
    fecha = dato["fecha"]
    if fecha not in fechas_dict:
        fechas_dict[fecha] = [dato]  # crea una nueva lista para la fecha
    else:
        fechas_dict[fecha].append(dato)  # agrega el dato a la lista existente
 
fechas_ordenadas = sorted(fechas_dict.items())
 
for fecha, datos in fechas_ordenadas:
    print(f"Fecha: {fecha}")
    for dato in datos:
        print(dato)

computing/coding/python/librerias/libreria_json.txt · Última modificación: por 127.0.0.1