在Python中解析嵌套的urlencode请求主体

时间:2019-04-30 14:20:05

标签: python python-3.x urllib

如何转换urlencode请求主体(如PHP的http_build_query函数生成的主体),如下所示:

foo=bar&baz=3&metadata[name]=john&metadata[lastname]=smith

像这样插入嵌套的python字典中?

{
   'foo': 'bar',
   'baz': 3,
   'metadata': {
       'name': 'john',
       'lastname': 'smith'
   }
}

这似乎是一个常见问题-因此,我确信为此存在一些库,最好避免为此编写自己的函数。例如,multidimensional_urlencode解决了相反的问题-从字典生成查询字符串-但不进行解析。

1 个答案:

答案 0 :(得分:2)

您可以使用jQuery-Unparam库来实现此目的:

from jquery_unparam import jquery_unparam

url = "foo=bar&baz=3&metadata[name]=john&metadata[lastname]=smith"
print(jquery_unparam(url))

输出:

{'foo': 'bar', 'baz': '3', 'metadata': {'name': 'john', 'lastname': 'smith'}}