我张贴这个字符“to”,通常是通过一份表格,到一个网站,我不控制。我对数据的编码有问题。试图发送数据而不对其编码到utf-8会产生此错误(更正:此错误是另一个特殊字符错误!):
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')和一些尝试和错误之后:
在他们的网站上显示如下:§
发布如下:§在他们的站点上显示为:圣保罗ƒ§
缩短代码示例:
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代码:
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。
发布于 2016-06-26 13:29:31
对于这个问题,最简单的答案是,我在打开数据文件时没有指定编码。如果我将encoding="utf-8"
添加到开放函数中,并将请求编码为utf-8,这将很快得到解决。
https://stackoverflow.com/questions/38010226
复制相似问题