Python POST编码和格式化

时间:2016-06-03 14:48:10

标签: python post character-encoding urllib

我正在使用带有Python的urllib发送POST请求。

我使用Charles查看通常发送的POST,现在我尝试使用urllib发送相同的内容。

这是应根据查尔斯发送的内容:

{" stuff_values":{" description":"这是描述"," somestuff":[{" thing& #34;:"你好","标题":"我爱饼干"}]}}

这就是我发送的内容:

stuff_values =%7B%27description%27%3A +%27This是+描述%27%2C +%27somestuff%27%3A +%5B%7B%27thing%27%3A +%27hello%27%2C +%27title%27% 3A +%27I +爱+饼干%27%7D%5D%7D

这是我的代码的一部分:

values = {
"stuff_values":{
"description":"this is description",
"somestuff" : [{"thing":"hello",
"title":"i love cookies"}]}
}

data = urllib.parse.urlencode(values)
data = data.encode('ascii')
req = urllib.request.Request(url, data, headers = headers)

有人可以帮我解决这个问题吗?我猜测我对编码部分有问题,但也正确地格式化了其余部分。

感谢您的时间!

1 个答案:

答案 0 :(得分:1)

尝试:

data = str(values)

代替。 urlencode正在将某些字符转换为%xx转义。