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

在Python中解析嵌套的urlencode请求体,python,python-3.x,urllib,Python,Python 3.x,Urllib,如何转换urlencode请求体(如PHP函数生成的请求体),如下所示: foo=bar&baz=3&metadata[name]=john&metadata[lastname]=smith 到一个嵌套的Python dict中,像这样 { ‘foo’:‘bar’, "baz":3,, “元数据”:{ “姓名”:“约翰”, “姓氏”:“史密斯” } } 这看起来像是一个常见的问题——因此我确信有些库是针对这个问题存在的,最好避免为此编写自己的函数。例如,解决了相反的问

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

foo=bar&baz=3&metadata[name]=john&metadata[lastname]=smith
到一个嵌套的Python dict中,像这样

{
‘foo’:‘bar’,
"baz":3,,
“元数据”:{
“姓名”:“约翰”,
“姓氏”:“史密斯”
}
}

这看起来像是一个常见的问题——因此我确信有些库是针对这个问题存在的,最好避免为此编写自己的函数。例如,解决了相反的问题—从dict生成查询字符串—但不进行解析。

您可以使用库实现这一点:

输出:

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

您希望输入数据中有多少嵌套级别?两个或三个,尽管我确信库解决方案将支持任意嵌套级别-这与我所需要的完全一样!
{'foo': 'bar', 'baz': '3', 'metadata': {'name': 'john', 'lastname': 'smith'}}