vince spicer wrote:
you can build a dictionary and keep the active key, again this would only
work in predictable data

users = {}
name = None

for line in file:
    key, value = [x.strip() for x in line.split(":")]
    if key == "name":
        name = data[1]
users[name] = {} else:
         users[name][data[0]]

users
{"stefan": {
          "id":12345
          "color":blue
})

Vince

On Fri, Jul 24, 2009 at 9:39 AM, Stefan Lesicnik <[email protected]> wrote:

Hi Guys,

It seems like this keeps coming up (for me anyways), and i'm never sure how
to do it. I'm very new to programming...

I have a file that has text in a certain format. Lets assume

'''
name: stefan
id: 12345
color: blue
name: joe
id: 54321
color: red
'''

The format is predictable.  I understand for non predictable text, you
would have to use pyparser or the like to build a match.

For predictable format, I am never sure how to handle this. I normally use
something like

for line in file:
    line.split('\n')

The problem being i dont really do something per line?  I would like to say
something like, for line until the next 'name', make that 1 element.
So i would like to then have a list or dict (this probably makes sense for
a dict) with that group. I would then probably split it into various
elements.

So essentially im asking, how do i say the for line until next 'match'.
Would this be something for the re module? Or is there an inbuilt core way?

I hope this makes sense

Thanks!

Stefan


_______________________________________________
Tutor maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/tutor



(Don't top-post.  It makes it difficult to see the sequence of responses)

(untested)

users = {}
name = None

for line in file:
   key, value = [x.strip() for x in line.split(":")]
   if key == "name":
       name = value
       users[name] = {}
    else:
        users[name][key] = value

At this point, users is a dictionary keyed by names, and each value is a dictionary, keyed by 'id' and 'color'


_______________________________________________
Tutor maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/tutor

Reply via email to