我正在使用Requests模块和Python 3。 当我在Chrome中检查时,如果解析的表单数据列为:
list_class_values[notice][zipstate]:
list_class_values[notice][type][]:
list_class_values[notice][keywords]:colorado
在上述情况下,我正在寻找科罗拉多州的#39;。 在'有效载荷中列出它们的正确语法是什么?部分,给出下面的代码片段? 内容类型是" application / x-www-form-urlencoded"。
payload = {"list_class_values[notice][zipstate]":"None", "list_class_values[notice][type][]":"None", "list_class_values[notice][keywords]":"colorado"}
r = requests.post(url='http://www.example.com', payload=payload, headers=headers)
print(r.content)
我在某处需要一个元组吗?例如" list_class_values(通知,关键词)":"科罗拉多" ? 因为我更改关键字时数据没有变化..
答案 0 :(得分:1)
我认为这是其他领域的问题。它们的值是空字符串,而不是字符串"None"
:
payload = {
"list_class_values[notice][zipstate]": "",
"list_class_values[notice][type][]": "",
"list_class_values[notice][keywords]": "colorado"
}
表单字段名称是正确的;语法是Ruby on Rails和PHP使用的约定,但不是标准。支持语法的服务器将密钥解析为数组映射(Python术语中的字典)。见Form input field names containing square brackets like field[index]
请注意,您需要将此传递给POST正文的data
参数(没有payload
关键字参数,您应该得到异常):
r = requests.post(url='http://www.example.com', data=payload, headers=headers)