Hola! En esta ocasión os posteo mi última aventura que tuve que fue recorrer un JSON para conocer el precio de la gasolina.
Cómo descargar JSON con WGET
Nos descargamos el JSON
wget https://sedeaplicaciones.minetur.gob.es/ServiciosRESTCarburantes/PreciosCarburantes/EstacionesTerrestres/ -O gasolina.json
Cómo reparar Anaconda
Antes de iniciar nuestra aventura debemos actualizar y reparar Anaconda con los siguientes comandos:
conda update conda --all
conda update anaconda
Cómo hacer que Jupiter cargue archivos enormes
Cuando trabajamos en big data sea este CSV o JSON debemos escribir el siguiente comando:
jupyter notebook --NotebookApp.iopub_data_rate_limit=1.0e10
Mostrando todas las ciudades, su provincia y precio
import json
from io import open
jsonVar=""
f = open("gasolina.json", mode="r", encoding="utf-8")
for x in f:
jsonVar=jsonVar+str(x)
provincia=""
localidad=""
gasolina=0.0
listaPrecio=json.loads(jsonVar)
listaPrecio=listaPrecio['ListaEESSPrecio']
for l in listaPrecio:
gasolina=0.0
provincia=l['Provincia']
localidad=l['Localidad'].title()
nombre=l['Rótulo']
try:
gasolina=float(l['Precio Gasolina 95 E5'].replace(",","."))
if gasolina > 0:
print("La gasolinera "+str(nombre)+" en la localidad "+str(localidad)+ " de la provincia "+str(provincia)+ " tiene como precio " +str(gasolina))
except:
print("", end="")
Intentando ordenarlo por precio (incompleto)
import json
from io import open
import numpy as np
jsonVar=""
f = open("gasolina.json", mode="r", encoding="utf-8")
for x in f:
jsonVar=jsonVar+str(x)
provincia=""
localidad=""
gasolina=0.0
nombre=""
listaPrecio=json.loads(jsonVar)
listaPrecio=listaPrecio['ListaEESSPrecio']
num=int(0)
a = np.array([[gasolina, provincia, localidad, nombre],[gasolina, provincia, localidad, nombre]])
for l in listaPrecio:
gasolina=0.0
provincia=l['Provincia']
localidad=l['Localidad'].title()
nombre=l['Rótulo']
try:
gasolina=float(l['Precio Gasolina 95 E5'].replace(",","."))
a=np.append(a, [[gasolina, provincia, localidad, nombre]])
#num=num+1
# if gasolina > 0:
#print("La gasolinera "+str(nombre)+" en la localidad "+str(localidad)+ " de la provincia "+str(provincia)+ " tiene como precio " +str(gasolina))
except:
print("", end="")
print("prueba")
for b in a:
print (b)
Agradecimientos
Gracias por leer este tutorial, y espero que a alguien le sea de utilidad este código, con la situación delicada que está pasando nuestro país, que no empiece de cero. Decir que el orden recomendaría usar clases y OOP para implementarlo 100% funcional.
Referencias
Gracias por visitar mi blog de informática, mi nombre es Tomás y soy formador y desarrollador web. Si quiere usted dejarme alguna sugerencia, ayuda o quiere un servicio de formación estoy escuchando ofertas en tomas.gonzalez@infogonzalez.com, en Facebook a https://www.facebook.com/Infogonzalez estoy deseando escucharle. Su duda o sugerencia NO molesta.