Ver Mensaje Individual
  #9 (permalink)  
Antiguo 03/07/2013, 10:47
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Replica PHP en Python

Código Python:
Ver original
  1. from pprint import pprint
  2.  
  3. dato = [{
  4.     "Cadena":"Mercado1",
  5.     "Zona":"RUTA1",
  6.     "id_Sucursal":237,
  7.     "Etapa":"Refresco",
  8.     "Usuario":"Ruta1",
  9.     "Area":"RutaA",
  10.     "Region":"Sur",
  11.     "Plaza":"Ruta",
  12.     "Id_Consecutivo":73756,
  13.     "Respuesta":"Si",
  14.     "Sucursal":"Mercado1",
  15.     "Puesto":"Vendedor",
  16.     "Cuestionario":"Inventario",
  17.     "Pregunta":"Capturo los datos",
  18.     "id_Pregunta":0,
  19.     "id_Usuario":6263,
  20.     "Giro":"Servicio",
  21.     "id_Cuestionario_Hecho":310151,
  22.     "Fecha_Aplicacion":1369353600,
  23.     "Cliente":"PepsiCo"
  24. },
  25. {
  26.     "Cadena":"Mercado1",
  27.     "Zona":"RUTA1",
  28.     "id_Sucursal":237,
  29.     "Etapa":"Refresco",
  30.     "Usuario":"Ruta1",
  31.     "Area":"RutaA",
  32.     "Region":"Sur",
  33.     "Plaza":"Ruta",
  34.     "Id_Consecutivo":73756,
  35.     "Respuesta":"Si",
  36.     "Sucursal":"Mercado1",
  37.     "Puesto":"Vendedor",
  38.     "Cuestionario":"Inventario",
  39.     "Pregunta":"Capturo los datos",
  40.     "id_Pregunta":0,
  41.     "id_Usuario":6263,
  42.     "Giro":"Servicio",
  43.     "id_Cuestionario_Hecho":310151,
  44.     "Fecha_Aplicacion":1369353600,
  45.     "Cliente":"PepsiCo"
  46. },
  47. {
  48.     "Cadena":"Mercado2",
  49.     "Zona":"RUTA1",
  50.     "id_Sucursal":237,
  51.     "Etapa":"Refresco",
  52.     "Usuario":"Ruta1",
  53.     "Area":"RutaA",
  54.     "Region":"Sur",
  55.     "Plaza":"Ruta",
  56.     "Id_Consecutivo":73756,
  57.     "Respuesta":"Si",
  58.     "Sucursal":"Mercado2",
  59.     "Puesto":"Vendedor",
  60.     "Cuestionario":"Inventario",
  61.     "Pregunta":"Capturo los datos",
  62.     "id_Pregunta":0,
  63.     "id_Usuario":6263,
  64.     "Giro":"Servicio",
  65.     "id_Cuestionario_Hecho":310151,
  66.     "Fecha_Aplicacion":1369353600,
  67.     "Cliente":"PepsiCo"}]
  68.  
  69. interactivos = {}
  70. for record in dato:
  71.     sucursal = record['Sucursal']
  72.     if sucursal not in interactivos:
  73.         interactivos[sucursal] = {
  74.             "Sucursal": record['Sucursal'],
  75.             "Cadena": record['Zona'],
  76.             "Etapa": record['Etapa'],
  77.             "Preguntas": [{
  78.                 "Numero": record['id_Pregunta'],
  79.                 "Pregunta": record['Pregunta']
  80.             }]
  81.         }
  82.     else:
  83.         interactivos[sucursal]['Preguntas'].append({
  84.             "Numero": record['id_Pregunta'],
  85.             "Pregunta": record['Pregunta']
  86.         })
  87.  
  88. pprint(interactivos)
Creo que mas o menos esto es lo quieres. Que por cada sucursal tomar algunos datos y tener una lista de preguntas.

Son muchas cosas lo que pasa aquí.

1. Python != PHP
2. Los arreglos de PHP se comportan como arreglos, diccionarios y últimamente como un caos de grafos.
3. En Python (estoy seguro que en PHP también), prefieren usar clases e instancias de clases a manejar sus instancias como diccionarios.
4. De hecho hay ORMs como el Django o SQLAlchemy que ayudan hacer este proceso.
5. El código de PHP es horrible pero no por culpa de PHP si no por quien desarrollo eso (si me refiero al primer script).