请求POST中的URL编码字符串

时间:2015-03-23 03:31:19

标签: python alchemyapi

我确定这真的是平庸和愚蠢但我无法理解我的生活。

我正在使用Alchemy API,其中使用请求的POST请求看起来像

r = requests.post(url, payload, headers=headers)

其中,有效负载是一个字典,带有用于网址编码的字段,如text=this%20is%text

我遇到的愚蠢问题是,如果我使用urllib进行编码,例如myText = urlencode({'text': textToEncode})

我无法将其插入到payload={'text': myText}的有效负载中,因为我得到了类似text=text=this%20is%text的内容

如果我只能对字符串本身进行编码,那么这将简单得多。编码功能添加了这些我无法将插入转换为dict的东西,因为整个dict被编码。

我错过了一些非常简单和愚蠢的东西吗?

1 个答案:

答案 0 :(得分:1)

尝试添加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)