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

 
Vista:
sin imagen de perfil

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: 2.394
Oro
Ha disminuido 1 puesto 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 (1646 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

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