Diferencia entre revisiones de «Usuario:Lmorillas/modulo programacion/python/json»

De WikiEducator
Saltar a: navegación, buscar
Línea 37: Línea 37:
  
  
{{Actividad|
+
==Ejercicio: Zonas con estado de tráfico complicado==
Title=Tramos con estado complejo|
+
TOCdepth=2|
+
===Fuentes de datos===
+
 
* En http://www.zaragoza.es/trafico/estado/estadoFicherosTrafico.json está la descripción de todos los ficheros involucrados en los datos de tráfico,
 
* En http://www.zaragoza.es/trafico/estado/estadoFicherosTrafico.json está la descripción de todos los ficheros involucrados en los datos de tráfico,
 
* http://www.zaragoza.es/trafico/estado/tramoswgs84.json describe los tramos en formato wgs84
 
* http://www.zaragoza.es/trafico/estado/tramoswgs84.json describe los tramos en formato wgs84
 
* http://www.zaragoza.es/trafico/estado/tramos23030.json describe los mismos tramos con coordenadas utm30
 
* http://www.zaragoza.es/trafico/estado/tramos23030.json describe los mismos tramos con coordenadas utm30
 
* http://www.zaragoza.es/trafico/estado/estado.json Tiene la información de estado de los tramos:
 
* http://www.zaragoza.es/trafico/estado/estado.json Tiene la información de estado de los tramos:
** '''timestamp''' indica la hora a la que esos datos se han generado en el servidor de tráfico en hora UTC. El formato de la fecha es YYYYMMDD_HHMMSSZ (4 dígitos para el año, 2 para el mes, 2 para el día, un guión bajo, 2 dígitos para la hora, 2 para el minuto, 2 para el segundo y el literal ‘Z’ para indicar que la hora es Zulu o UTC)
+
** '''timestamp''' indica la hora a la que esos datos se han generado en el servidor de tráfico en hora UTC. El formato de la fecha es YYYYMMDD_HHMMSSZ (4 dígitos para el año, 2 para el mes, 2 para el día, un guión bajo, 2 dígitos para la hora, 2 para el minuto, 2 para el segundo y el literal "Z" para indicar que la hora es Zulu o UTC)
** '''estados''' contiene una cadena en la que cada carácter representa el estado de un tramo, según la posición que ocupa. Es decir, el estado del tramo con id=23 es el carácter número 23 de dicha cadena. Por lo tanto, si el máximo id de tramo es 219, la cadena tiene que tener 220 caracteres de largo. Si en el futuro se borran tramos, se guardará la posición en la cadena con el carácter -(guión). Los estados pueden ser:
+
** '''estados''' contiene una cadena en la que cada carácter representa el estado de un tramo, según la posición que ocupa. Es decir, el estado del tramo con id=23 es el carácter número 23 de dicha cadena. Por lo tanto, si el máximo id de tramo es 219, la cadena tiene que tener 220 caracteres de largo. Si en el futuro se borran tramos, se guardará la posición en la cadena con el carácter "-" (guión). Los estados pueden ser:
 
*** r  rojo
 
*** r  rojo
 
*** y amarillo
 
*** y amarillo
Línea 53: Línea 50:
 
*** t transparente
 
*** t transparente
 
*** - no existe el tramo
 
*** - no existe el tramo
}}
 

Revisión de 22:19 30 nov 2011


Doc

Ejemplo: Datos del tráfico de http://datos.zaragoza.es

from urllib2 import urlopen
from json import load
 
urlt = 'http://www.zaragoza.es/trafico/estado/tiempos2.json'
tiempos = load(urlopen(urlt))
 
# los datos están en la clave tiempos
tiempos = tiempos.get('tiempos')
 
# mostramos inicio y fin de cada tramo
for t in tiempos: 
    print t.get('inicio'), '--->', t.get('fin')
 
# cuánto va a costar ir de la cª madrid al actur?
for t in tiempos:
    ini = t.get('inicio')
    fin = t.get('fin')
    if 'madrid' in ini.lower() and 'actur' in fin.lower():
         print ini, fin, t.get('minutosActual')
 
# Tramos que acumulan retrasos
for t in tiempos:
    act = t.get('minutosActual')
    normal = t.get('minutosNormal')
    if act > normal:
         print t.get('inicio'), t.get('fin')


Ejercicio: Zonas con estado de tráfico complicado

  • En http://www.zaragoza.es/trafico/estado/estadoFicherosTrafico.json está la descripción de todos los ficheros involucrados en los datos de tráfico,
  • http://www.zaragoza.es/trafico/estado/tramoswgs84.json describe los tramos en formato wgs84
  • http://www.zaragoza.es/trafico/estado/tramos23030.json describe los mismos tramos con coordenadas utm30
  • http://www.zaragoza.es/trafico/estado/estado.json Tiene la información de estado de los tramos:
    • timestamp indica la hora a la que esos datos se han generado en el servidor de tráfico en hora UTC. El formato de la fecha es YYYYMMDD_HHMMSSZ (4 dígitos para el año, 2 para el mes, 2 para el día, un guión bajo, 2 dígitos para la hora, 2 para el minuto, 2 para el segundo y el literal "Z" para indicar que la hora es Zulu o UTC)
    • estados contiene una cadena en la que cada carácter representa el estado de un tramo, según la posición que ocupa. Es decir, el estado del tramo con id=23 es el carácter número 23 de dicha cadena. Por lo tanto, si el máximo id de tramo es 219, la cadena tiene que tener 220 caracteres de largo. Si en el futuro se borran tramos, se guardará la posición en la cadena con el carácter "-" (guión). Los estados pueden ser:
      • r rojo
      • y amarillo
      • g verde
      • b negro
      • t transparente
      • - no existe el tramo