help on Implementing a list of dicts with no data pattern

rlelis ricardo.lelis3 at gmail.com
Thu May 9 05:57:47 EDT 2013


On Thursday, May 9, 2013 12:47:47 AM UTC+1, rlelis wrote:
> Hi guys,
> 
> 
> 
> I'm working on this long file, where i have to keep reading and
> 
> storing different excerpts of text (data) in different variables (list).
> 
> 
> 
> Once done that i want to store in dicts the data i got from the lists mentioned before. I want them on a list of dicts for later RDBMs purpose's.
> 
> 
> 
> The data i'm working with, don't have fixed pattern (see example bellow), so what i'm doing is for each row, i want to store combinations of  word/value (Key-value) to keep track of all the data.
> 
> 
> 
> My problem is that once i'm iterating over the list (original one a.k.a file_content in the link), then i'm nesting several if clause to match
> 
> the keys i want. Done that i select the keys i want to give them values and lastly i append that dict into a new list. The problem here is that i end up always with the last line repeated several times for each row it found's.
> 
> 
> 
> Please take a look on what i have now:
> 
> http://pastebin.com/A9eka7p9

Sorry, i thought that a link to pastebin could be helpfully since it captures the syntax highlights and spacings. I don't have a fifty line code there. The 25 lines below, where to show you guys a picture of what is going on, to be more intuitive.
This is what i have for now:

highway_dict = {}
aging_dict = {}
queue_row = []
for content in file_content:
	if 'aging' in content:
		# aging 0 100
		collumns = ''.join(map(str, content[:1])).replace('-','_').lower()
		total_values =''.join(map(str, content[1:2]))
		aging_values = ''.join(map(str, content[2:]))

		aging_dict['total'], aging_dict[collumns] = total, aging_values
	queue_row.append(aging_dict)

	if 'highway' in content:
		#highway	|	4 	|	disable |	25
		collumns = ''.join(map(str, content[:1])).replace('-','_').lower()
		lanes_values  =''.join(map(str, content[1:2]))		
		state_values = ''.join(map(str, content[2:3])).strip('')
		limit_values = ''.join(map(str, content[3:4])).strip('')
		
		highway_dict['lanes'], highway_dict['state'], highway_dict['limit(mph)'] = lanes, state, limit_values
	queue_row.append(highway_dict)



More information about the Python-list mailing list