在 Python 中解析嵌套的 urlencode 请求正文
parse a nested urlencode request body in Python
如何转换 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 解决了相反的问题——从字典生成查询字符串——但不进行解析。
您可以使用 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'}}
如何转换 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 解决了相反的问题——从字典生成查询字符串——但不进行解析。
您可以使用 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'}}