That was it. Thank you, Alan.

-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of Alan 
Gauld
Sent: Wednesday, November 10, 2010 5:04 PM
To: [email protected]
Subject: Re: [Tutor] put query result set into dictionary


"Shawn Matlock" <[email protected]> wrote

> I am trying to put the results of a MySQL query into a dictionary.
> It fails because it includes the Unicode delimiter - "u'somevalue'".

I don't think so...

> envsql = "select envVariable, envValue from ODS_ENV_DICT where 
> envName = 'ST2'"
> csdbCursor.execute(envsql)

> envDict = {}
> for envVariable, envValue in csdbCursor.fetchall():
>     envDict[envVariable].append(envValue)

Append is a list operation but you don;t have a list (yet).
You are just adding a single value to a dictionary.
You need something like:
      envDict[envVariable] = envValue

Or if you really want a list you need to check if the value is
there first and then append. You could do that with setdefault() like 
so:

      envDict.setdefault(envVariable, []).append(envValue)

Which returns the list if one exists or an empty list if it doesn't
and appends the value to it, it then assigns the resulting list
back to the dictionary at the key position

> Traceback (most recent call last):
>   File "H:\workspace\test\src\root\nested\example.py", line 33, in 
> <module>
>    envDict[envVariable].append(envValue)
> KeyError: u'envDB'

Despite the KeyError message its really because you are trying
to use append on a non existent list:

>>> d = {}
>>> d[5].append(7)
Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
KeyError: 5

Same error, no unicode in sight.

HTH,

-- 
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/



_______________________________________________
Tutor maillist  -  [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor


_______________________________________________
Tutor maillist  -  [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to