Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python请求-通过带有方括号名称的POST表单发送不';行不通_Python_Http_Python Requests - Fatal编程技术网

python请求-通过带有方括号名称的POST表单发送不';行不通

python请求-通过带有方括号名称的POST表单发送不';行不通,python,http,python-requests,Python,Http,Python Requests,我正试图通过HTML表单将test[key1]=val1和test[key2]=val42发送到服务器。 相应的HTML将是: <input type="text" name="test[key1]" value="val1" /> <input type="text" name="test[key2]" value="val42" /> post数据已被展平,我们得到了键,但丢失了值val1和val42,我认为这会自动处理带有嵌入键的params json,但事实并非

我正试图通过HTML表单将test[key1]=val1和test[key2]=val42发送到服务器。
相应的HTML将是:

<input type="text" name="test[key1]" value="val1" />
<input type="text" name="test[key2]" value="val42" />
post数据已被展平,我们得到了键,但丢失了值val1和val42,我认为这会自动处理带有嵌入键的params json,但事实并非如此

您需要使用方括号编写
params

>>> params = { 'test[key1]' : 'val1', 'test[key2]' : 'val42' }
>>> r = requests.post('http://httpbin.org/post', data=params)
>>> json.loads(r.text)['form']
{u'test[key1]': u'val1', u'test[key2]': u'val42'}
希望这会对某人有所帮助。

我以为会自动处理带有嵌入键的params json,但事实并非如此

您需要使用方括号编写
params

>>> params = { 'test[key1]' : 'val1', 'test[key2]' : 'val42' }
>>> r = requests.post('http://httpbin.org/post', data=params)
>>> json.loads(r.text)['form']
{u'test[key1]': u'val1', u'test[key2]': u'val42'}

希望这能对其他人有所帮助。

默认情况下,HTML表单无法序列化,因为它们不支持嵌套。使用像
formencode
这样的库,特别是
variabledecode
模块将表单数据序列化/反序列化为json


默认情况下,HTML表单无法序列化,因为它们不支持嵌套。使用像
formencode
这样的库,特别是
variabledecode
模块将表单数据序列化/反序列化为json