python请求-通过带有方括号名称的POST表单发送不';行不通
我正试图通过HTML表单将test[key1]=val1和test[key2]=val42发送到服务器。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将是:
<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