python - Scrapy FormRequest 发送 JSON

标签 python json scrapy

我正在尝试创建一个可以发送 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/

相关文章:

python - Tkinter 添加选项卡将所有内容推到右侧

python - 如何指定python pip的安装顺序?

python - 检查字段是否允许 Django 中的空值

json - 使用 golang 将一个简单的 json 文件输出到 rest api

python - 解析中的 scrapy 回调未调用

python - 使用类作为枚举时如何访问属性名称?

ruby-on-rails - 事件管理员 : how to add sortable on nested model's json column

javascript - JSON 到 HTML - 我被正式难住了

python - Scrapy Spider 返回 None 而不是 Item

python - 如何访问亚马逊类别列表的第 101 页