首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用python请求POST编码

用python请求POST编码
EN

Stack Overflow用户
提问于 2016-06-24 09:38:57
回答 1查看 5.5K关注 0票数 1

我张贴这个字符“to”,通常是通过一份表格,到一个网站,我不控制。我对数据的编码有问题。试图发送数据而不对其编码到utf-8会产生此错误(更正:此错误是另一个特殊字符错误!):

代码语言:javascript
运行
复制
File "D:\Python34\lib\http\client.py", line 1181, in _send_request
body = body.encode('iso-8859-1')
UnicodeEncodeError: 'latin-1' codec can't encode character '\u0192' in position 512: ordinal not in range(256)

我从一个用utf-8编码保存的.csv文件中读取数据(这是问题的一部分吗?)

在使用.encode('utf-8')和一些尝试和错误之后:

在他们的网站上显示如下:§

发布如下:§在他们的站点上显示为:圣保罗ƒ§

缩短代码示例:

代码语言:javascript
运行
复制
headers = {
'Accept' : 'application/json, text/javascript, */*; q=0.01',
'Content-Type' : 'application/x-www-form-urlencoded; charset=UTF-8'
}

data = {
"info" : "ç"
}

r = requests.post('www.urlgoeshere.com', headers=headers, data=json.dumps(data,ensure_ascii=False).encode('utf-8'))

有人知道我如何发送这些特殊字符并让它们正确显示的技巧吗?或者我应该放弃把它们都删掉。他们的网站形式管理它无论如何,所以我想以及。

编辑以获得更完整的.csv代码:

代码语言:javascript
运行
复制
with open('data.csv', newline='') as dataFile:
dataReader = csv.reader(dataFile)
for row in dataReader:
    data = {
    "values":{
    "title_id":row[1],
    "title":row[0],
    "other stuff":[{"foo":"bar",
    "too":"foobar"}]}
    }

在这个循环中,我也会执行请求。Data.csv是一个以逗号分隔的文件,保存为utf-8。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-26 13:29:31

对于这个问题,最简单的答案是,我在打开数据文件时没有指定编码。如果我将encoding="utf-8"添加到开放函数中,并将请求编码为utf-8,这将很快得到解决。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38010226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档