getfirst and re

Victor Subervi victorsubervi at gmail.com
Fri Jan 8 14:15:51 EST 2010


On Fri, Jan 8, 2010 at 3:09 PM, Victor Subervi <victorsubervi at gmail.com>wrote:

>
>
> On Fri, Jan 8, 2010 at 2:52 PM, Jean-Michel Pichavant <
> jeanmichel at sequans.com> wrote:
>
>> Victor Subervi wrote:
>>
>>  On Fri, Jan 8, 2010 at 1:26 PM, Steve Holden <steve at holdenweb.com<mailto:
>>> steve at holdenweb.com>> wrote:
>>>
>>>    MRAB wrote:
>>>    > Victor Subervi wrote:
>>>    > [snip]
>>>    >>
>>>    >> Code snippet:
>>>    >>
>>>    >> def cgiFieldStorageToDict(fieldStorage):
>>>                                ^^^^^^^^^^^^
>>>    Further hint ...
>>>
>>>    >>   params = {}
>>>    >>   for key in fieldStorage.keys():
>>>    >>     params[key] = cgi.FieldStorage[key].value
>>>    >                     ^^^^^^^^^^^^^^^^^^^^^
>>>    > This is your problem.
>>>
>>>
>>> The problem is that I don't understand this code that I exactly copied
>>> from a Web page tutorial. Can you folks point me to tutorials where I can
>>> learn to comprehend this code? Specifically, the line in question. How is it
>>> that one can code "params[key]" (what does that mean?) and the other side,
>>> what does that mean
>>>
>> I think you are gathering more fans Victor :)
>>
>> http://docs.python.org/tutorial/datastructures.html#dictionaries
>>
>
> This still isn't telling me what I need to know. Perhaps I'm missing the
> point, as in the recent case with putting the "print cookie" statement in
> the header. I am assuming (translation: making an a$$ out of you and me)
> that "params[key] automatically assigns the fieldStorage key to the newly
> created params key in the dict of the same, and assigning the value from the
> cgi.FieldStorage of that key to the params value. Is that correct?
> TIA,
> beno
>

I may have answered my own question. I have this:

def cgiFieldStorageToDict(fieldStorage):
  params = {}
  for key in fieldStorage.keys():
    params[key] = fieldStorage[key].value
  return params

  dict = cgiFieldStorageToDict(cgi.FieldStorage())
  print dict

which gave me this:

{'store': 'products', 'cat': 'prodCat1'}

which looks about right. I would have written the code like this:

  keys = []
  values = []
  for key, value in fieldStorage.iteritems():
    keys.append(key)
    values.append(value)
  params = dict(zip(keys, values))

which obviously isn't as elegant. But that's what I knew. Learned another
trick, I guess ;)
Thanks all.
beno
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20100108/33f41c9e/attachment-0001.html>


More information about the Python-list mailing list