Python - Por Favor Ayuda! Creación De Diccionario En Python Desde Archivo De Texto

 
Vista:
sin imagen de perfil
Val: 10
Ha aumentado su posición en 5 puestos en Python (en relación al último mes)
Gráfica de Python

Por Favor Ayuda! Creación De Diccionario En Python Desde Archivo De Texto

Publicado por Santiago (5 intervenciones) el 28/10/2016 20:07:12
Hola a todos, debo crear un diccionario en python desde un archivo de texto que contiene el registro cronológico de cada entrada y salida de 5 usuarios a un tren, cada linea de archivo representa uno de los eventos, el archivo es el siguiente:


EST_ID USER_ID E_TIME E_TYPE

010 11111111 04:03 IN
002 33333333 04:10 IN

010 22222222 04:15 IN

001 55555555 04:20 IN

001 44444444 04:31 IN

002 44444444 04:37 OUT

019 11111111 04:40 OUT

004 55555555 04:46 OUT

006 33333333 04:50 OUT

001 22222222 04:55 OUT



Donde:
EST_ID: Identificación De Estacion
USER_ID: Identificación De Usuario
E_TIME: Hora Del Evento
E_TYPE: Tipo De Evento (Entrada o Salida Del Usuario)

Ahora bien, necesito crear un diccionario con la siguiente estructura:

{USER_ID: [ (EST_INGRESO, HORA_INGRESO, EST_SALIDA, HORA_SALIDA) ] }

El diccionario quedaría de la siguiente manera:
{'11111111': [ ( 010, 04:03, 019, 4:40) ] , '22222222': [ ( 010, 04:15, 001, 4:55) ] , (...), ...] etc}


Alguna idea de como realizarlo ?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 1.472
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Por Favor Ayuda! Creación De Diccionario En Python Desde Archivo De Texto

Publicado por xve (1637 intervenciones) el 29/10/2016 10:19:06
Hola Santiago, aqui tienes un ejemplo de como hacerlo con Python 2.x:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# -*- coding: utf-8 -*-
 
data="""010 11111111 04:03 IN
002 33333333 04:10 IN
010 22222222 04:15 IN
001 55555555 04:20 IN
001 44444444 04:31 IN
002 44444444 04:37 OUT
019 11111111 04:40 OUT
004 55555555 04:46 OUT
006 33333333 04:50 OUT
001 22222222 04:55 OUT"""
 
resultado={}
for i in data.splitlines():
	valores=i.split()
	if resultado.has_key(valores[1]):
		resultado[valores[1]].append(valores[0])
		resultado[valores[1]].append(valores[2])
	else:
		resultado[valores[1]]=[valores[0],valores[2]]
print resultado

el resultado que devuelve es:
1
{'11111111': ['010', '04:03', '019', '04:40'], '33333333': ['002', '04:10', '006', '04:50'], '22222222': ['010', '04:15', '001', '04:55'], '55555555': ['001', '04:20', '004', '04:46'], '44444444': ['001', '04:31', '002', '04:37']}

espero que te sirva... coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 10
Ha aumentado su posición en 5 puestos en Python (en relación al último mes)
Gráfica de Python

Por Favor Ayuda! Creación De Diccionario En Python Desde Archivo De Texto

Publicado por Santiago (5 intervenciones) el 29/10/2016 19:56:54
Perfecto! Muchas Gracias por ayudarme! Solo tuve que cambiar la parte de ---if resultado.has_key(valores[1]):--- por ---if (valores[1]) in resultado:--- para que me funcionase en Python 3.x! Saludos! y de nuevo muchas gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar