我确信这真的很平庸和愚蠢,但我一辈子都想不出来。
我正在使用Alchemy API,其中使用请求的POST请求看起来像
r = requests.post(url, payload, headers=headers)
其中有效载荷是一个dict,该dict具有类似text=this%20is%text
的url编码文本的字段
我遇到的愚蠢问题是,如果我使用urlib进行像myText = urlencode({'text': textToEncode})
这样的编码
然后我不能将其插入payload={'text': myText}
的有效载荷中,因为这样我可能会得到类似text=text=this%20is%text
的东西
如果我可以对字符串本身进行编码,这会简单得多。encoding函数添加了一些我无法在dict中插入的内容,因为整个dict都被编码了。
我是不是错过了一些极其简单和愚蠢的东西?
尝试包含Content-type
标头,例如application/json
,然后使用data=json.dumps(payload)
。
import json
headers['Content-type'] = 'application/json'
r = requests.post(url, data=json.dumps(payload), headers=headers)