我正在尝试创建一个可以发送 content-type:application/json 的 FormRequest。
这是我的尝试:
yield FormRequest("abc.someurl.com", formdata=json.dumps({"referenceId":123,"referenceType":456}), headers={'content-type':'application/json'}, callback=self.parseResult2)
如果我使用json.dumps()
来处理formdata=中的表单数据,我得到的错误是
"exceptions.ValueError: need more than 1 value to unpack"
我不能像在
中那样只使用列表formdata={"referenceId":123,"referenceType":456}
FormRequest 有效但未被服务器接受。
import requests
import json
result = requests.post(url, json.dumps({"referenceId":123,"referenceType":456}), headers={'content-type':'application/json'})
它在上面的 python 命令提示符下工作。
有什么想法吗?
-公里
最佳答案
FormRequest 用于模拟 HTML 表单(例如 application/x-www-form-urlencoded)。听起来你只是想用你的请求发布数据。既然你提到了“application/json”的内容类型,你可能想做这样的事情:
request = Request( url, method='POST',
body=json.dumps(my_data),
headers={'Content-Type':'application/json'} )
关于python - Scrapy FormRequest 发送 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11236632/