Saltar al contenido

Recorriendo JSON del precio de la gasolina

coding script

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
coding script
Photo by Markus Spiske on Pexels.com

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Ver más

  • Responsable: Tomas Gonzalez.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad
Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.