lol*_*que 1 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" />
Run Code Online (Sandbox Code Playgroud)
(顺便说一句,我想知道这种形式的正确名称.)
>>> import requests, json
>>> params = { 'test' : { 'key1' : 'val1', 'key2' : 'val42' } }
>>> r = requests.post('http://httpbin.org/post', data=params)
>>> json.loads(r.text)['form']
{u'test': [u'key2', u'key1']}
Run Code Online (Sandbox Code Playgroud)
帖子数据已经变平,我们得到了键但丢失了值val1和val42
我认为python-requests会自动处理带嵌入式密钥的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'}
Run Code Online (Sandbox Code Playgroud)
希望这会对某人有所帮助.