Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.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_Python_Post_Python 3.x_Params_Python Requests - Fatal编程技术网

有序请求参数python

有序请求参数python,python,post,python-3.x,params,python-requests,Python,Post,Python 3.x,Params,Python Requests,如何在请求中发布已订购的参数 我尝试了以下方法,但均无效: payload = dict{('f','1'),('s','2'),('t','3'),('f','4'),('ft','5'),('s','6'),('se','7'),('e':8,'data[1]','9'),('t','10'),('el','1q'),('data[2]','12'),('data[3]','13'),('data[4]','14'),('htmldata[5]','15')} payload = Orde

如何在请求中发布已订购的参数

我尝试了以下方法,但均无效:

payload = dict{('f','1'),('s','2'),('t','3'),('f','4'),('ft','5'),('s','6'),('se','7'),('e':8,'data[1]','9'),('t','10'),('el','1q'),('data[2]','12'),('data[3]','13'),('data[4]','14'),('htmldata[5]','15')}

payload = OrderedDict{('f','1'),('s','2'),('t','3'),('f','4'),('ft','5'),('s','6'),('se','7'),('e':8,'data[1]','9'),('t','10'),('el','1q'),('data[2]','12'),('data[3]','13'),('data[4]','14'),('htmldata[5]','15')}

payload = (('f','1'),('s','2'),('t','3'),('f','4'),('ft','5'),('s','6'),('se','7'),('e':8,'data[1]','9'),('t','10'),('el','1q'),('data[2]','12'),('data[3]','13'),('data[4]','14'),('htmldata[5]','15'))

payload = ([('f','1'),('s','2'),('t','3'),('f','4'),('ft','5'),('s','6'),('se','7'),('e':8,'data[1]','9'),('t','10'),('el','1q'),('data[2]','12'),('data[3]','13'),('data[4]','14'),('htmldata[5]','15')])
我得到的错误是:

SyntaxError: invalid syntax
此选项以随机顺序发布参数,无错误:

payload = {'f':'1','s':'2','t':'3','f':'4','ft':'5','s':'6','se':'7','e':8,'data[1]':'9','t':'10','el':'1q','data[2]':'12','data[3]':'13','data[4]':'14','htmldata[5]':'15'}
如何使用以下代码发布已订购的参数

c = requests.post(url, params = payload)
  • dict{…}
    是错误的,它应该是
    dict(…)
    。这同样适用于
    orderedict{…}
  • dict
    orderedict
    将序列作为参数
  • 在元组列表中有
    ('e':8,'data[1],'9')
    。可能应该是
    ('e',8),('data[1],'9')
这将生成一个dict(它相当于您发布的工作dict文本),它将始终是无序的:

payload = dict([('f','1'),('s','2'),('t','3'),('f','4'),('ft','5'),('s','6'),('se','7'),('e', 8),('data[1]','9'),('t','10'),('el','1q'),('data[2]','12'),('data[3]','13'),('data[4]','14'),('htmldata[5]','15')])
这将生成一个元组的元组,该请求不会将作为
数据的参数

payload = (('f','1'),('s','2'),('t','3'),('f','4'),('ft','5'),('s','6'),('se','7'),('e', 8),('data[1]','9'),('t','10'),('el','1q'),('data[2]','12'),('data[3]','13'),('data[4]','14'),('htmldata[5]','15'))
剩下的两个(有序字典元组列表)将生成您想要的:

from collections import OrderedDict
payload = OrderedDict([('f','1'),('s','2'),('t','3'),('f','4'),('ft','5'),('s','6'),('se','7'),('e',8),('data[1]','9'),('t','10'),('el','1q'),('data[2]','12'),('data[3]','13'),('data[4]','14'),('htmldata[5]','15')])
payload = [('f','1'),('s','2'),('t','3'),('f','4'),('ft','5'),('s','6'),('se','7'),('e', 8),('data[1]','9'),('t','10'),('el','1q'),('data[2]','12'),('data[3]','13'),('data[4]','14'),('htmldata[5]','15')]
  • dict{…}
    是错误的,它应该是
    dict(…)
    。这同样适用于
    orderedict{…}
  • dict
    orderedict
    将序列作为参数
  • 在元组列表中有
    ('e':8,'data[1],'9')
    。可能应该是
    ('e',8),('data[1],'9')
这将生成一个dict(它相当于您发布的工作dict文本),它将始终是无序的:

payload = dict([('f','1'),('s','2'),('t','3'),('f','4'),('ft','5'),('s','6'),('se','7'),('e', 8),('data[1]','9'),('t','10'),('el','1q'),('data[2]','12'),('data[3]','13'),('data[4]','14'),('htmldata[5]','15')])
这将生成一个元组的元组,该请求不会将作为
数据的参数

payload = (('f','1'),('s','2'),('t','3'),('f','4'),('ft','5'),('s','6'),('se','7'),('e', 8),('data[1]','9'),('t','10'),('el','1q'),('data[2]','12'),('data[3]','13'),('data[4]','14'),('htmldata[5]','15'))
剩下的两个(有序字典元组列表)将生成您想要的:

from collections import OrderedDict
payload = OrderedDict([('f','1'),('s','2'),('t','3'),('f','4'),('ft','5'),('s','6'),('se','7'),('e',8),('data[1]','9'),('t','10'),('el','1q'),('data[2]','12'),('data[3]','13'),('data[4]','14'),('htmldata[5]','15')])
payload = [('f','1'),('s','2'),('t','3'),('f','4'),('ft','5'),('s','6'),('se','7'),('e', 8),('data[1]','9'),('t','10'),('el','1q'),('data[2]','12'),('data[3]','13'),('data[4]','14'),('htmldata[5]','15')]

谢谢你的澄清。我正在寻找一种对POST参数进行排序的方法,并尝试了
OrderedDict
,效果非常好。我没有提到
request
data
参数可以将元组列表作为参数。你是从哪里收集到这些信息的?谢谢主要是看来源。。。相关部分在和中(请查看注释和示例)。基本上这意味着它可以采用一个映射或任何一个生成两个元组的iterable(大多数参数都可以作为映射给出),这真是太棒了。
\u encode\u params
上的docstring提供了我正在寻找的详细信息:
“当作为dict或2元组列表传递时,将成功编码参数。如果数据是2元组列表,则保留顺序;如果参数作为dict提供,则保留任意顺序。”,如果POST表单数据出现故障,服务器将拒绝该表单。使用元组列表
[(a,b),…]
修复了此问题。感谢您对此的澄清。我正在寻找一种对POST参数进行排序的方法,并尝试了
OrderedDict
,效果非常好。我没有提到
request
data
参数可以将元组列表作为参数。你是从哪里收集到这些信息的?谢谢主要是看来源。。。相关部分在和中(请查看注释和示例)。基本上这意味着它可以采用一个映射或任何一个生成两个元组的iterable(大多数参数都可以作为映射给出),这真是太棒了。
\u encode\u params
上的docstring提供了我正在寻找的详细信息:
“当作为dict或2元组列表传递时,将成功编码参数。如果数据是2元组列表,则保留顺序;如果参数作为dict提供,则保留任意顺序。”,如果POST表单数据出现故障,服务器将拒绝该表单。使用元组列表
[(a,b),…]
修复了这个问题。OP对python的了解似乎仅限于我,但问题是如何使用
请求发布有序参数?这是有效的。
请求
文档仅说明应将字典作为
数据
/
参数
参数传递,未提及如何对键进行排序。HTTP规范规定,
application/x-www-form-urlencoded
应“按照它们在文档中出现的顺序”传递。因此,如果您碰巧正在自动化表单发布,您可能需要这些信息。OP对python的了解似乎仅限于我,但问题是我如何使用
请求
发布有序参数?这是有效的。
请求
文档仅说明应将字典作为
数据
/
参数
参数传递,未提及如何对键进行排序。HTTP规范规定,
application/x-www-form-urlencoded
应“按照它们在文档中出现的顺序”传递。因此,如果您碰巧正在自动化表单发布,您可能需要这些信息。