On Thu, 03 Mar 2005 16:25:39 -0500, Kent Johnson <[EMAIL PROTECTED]> wrote:
> Here is another attempt. I'm still not sure I understand what form you want
> the data in. I made a
> dict -> dict -> list structure so if you lookup e.g. scores['10/11/04']['60']
> you get a list of all
> the RelevantInfo2 values for Relevant1='10/11/04' and Relevant2='60'.
>
> The parser is a simple-minded state machine that will misbehave if the input
> does not have entries
> in the order Relevant1, Relevant2, Relevant3 (with as many intervening lines
> as you like).
>
> All three values are available when Relevant3 is detected so you could do
> something else with them
> if you want.
>
> HTH
> Kent
>
> import cStringIO
>
> raw_data = '''Gibberish
> 53
> MoreGarbage
[mass snippage]
> 60
> Lalala'''
> raw_data = cStringIO.StringIO(raw_data)
>
> scores = {}
> info1 = info2 = info3 = None
>
> for line in raw_data:
> if line.startswith('RelevantInfo1'):
> info1 = raw_data.next().strip()
> elif line.startswith('RelevantInfo2'):
> info2 = raw_data.next().strip()
> elif line.startswith('RelevantInfo3'):
> info3 = raw_data.next().strip()
> scores.setdefault(info1, {}).setdefault(info3, []).append(info2)
> info1 = info2 = info3 = None
>
> print scores
> print scores['10/11/04']['60']
> print scores['10/10/04']['23']
>
> ## prints:
> {'10/10/04': {'44': ['33'], '23': ['22', '22']}, '10/11/04': {'60': ['45']}}
> ['45']
> ['22', '22']
Thank you so much. Your solution and Steve's both give me what I'm looking
for. I appreciate both of your incredibly quick replies!
Take care.
--
You worry too much about your job. Stop it. You are not paid enough to worry.
--
http://mail.python.org/mailman/listinfo/python-list