getfirst and re
MRAB
python at mrabarnett.plus.com
Fri Jan 8 14:37:49 EST 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