Changeset 3295

Show
Ignore:
Timestamp:
12/17/09 09:41:58 (10 years ago)
Author:
cemeyer
Message:

#793: Implement urllib_unquote_parameters().

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • seattle/trunk/seattlelib/urllib.repy

    r3273 r3295  
    173173 
    174174  return "&".join(quoted_keyvals) 
     175 
     176 
     177 
     178 
     179def urllib_unquote_parameters(string): 
     180  """ 
     181  <Purpose> 
     182    Decode a urlencoded query string or POST body. 
     183 
     184  <Arguments> 
     185    string: 
     186           The string to decode. 
     187 
     188  <Exceptions> 
     189    ValueError if the string is poorly formed. 
     190 
     191  <Side Effects> 
     192    None. 
     193 
     194  <Returns> 
     195    A dictionary mapping keys to values. 
     196  """ 
     197 
     198  keyvalpairs = string.split("&") 
     199  res = {} 
     200 
     201  for quotedkeyval in keyvalpairs: 
     202    # Throw ValueError if there is more or less than one '='. 
     203    quotedkey, quotedval = quotedkeyval.split("=") 
     204    key = urllib_unquote(quotedkey) 
     205    val = urllib_unquote(quotedval) 
     206    res[key] = val 
     207 
     208  return res