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