getfirst and re

MRAB python at mrabarnett.plus.com
Fri Jan 8 20:37:49 CET 2010


Victor Subervi wrote:
> On Fri, Jan 8, 2010 at 3:09 PM, Victor Subervi <victorsubervi at gmail.com 
> <mailto:victorsubervi at gmail.com>> wrote:
> 
> 
> 
>     On Fri, Jan 8, 2010 at 2:52 PM, Jean-Michel Pichavant
>     <jeanmichel at sequans.com <mailto: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>
>             <mailto: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
> 
Which is what Recipe 81547 actually says!

>   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 ;)
> 
If that works then so should this:

     params = dict(fieldStorage.iteritems())




More information about the Python-list mailing list