python:unicodeEncodeError:“charpmap”编解码器无法编码字符“\u2026”
Posted
技术标签:
【中文标题】python:unicodeEncodeError:“charpmap”编解码器无法编码字符“\\u2026”【英文标题】:python : unicodeEncodeError: 'charpmap' codec can't encode character '\u2026'python:unicodeEncodeError:“charpmap”编解码器无法编码字符“\u2026” 【发布时间】:2015-04-08 13:56:08 【问题描述】:我尝试分析我从 tweeter 获得的一些推文,但如果您有任何想法,我似乎有编码问题..
import json
#Next we will read the data in into an array that we call tweets.
tweets_data_path = 'C:/Python34/TESTS/twitter_data.txt'
tweets_data = []
tweets_file = open(tweets_data_path, "r")
for line in tweets_file:
try:
tweet = json.loads(line)
tweets_data.append(tweet)
except:
continue
print(len(tweets_data))#412 tweets
print(tweet)
我错了: 文件“C:\Python34\lib\encodings\cp850.py”,第 19 行,在编码返回 codecs.charmap_encode(input,self.errors,encoding_map)[0] unicodeEncodeError:“charpmap”编解码器无法在位置 1345 编码字符“\u2026”:字符映射到未定义
在工作中,我没有收到错误,但我有python 3.3,你觉得有什么不同吗?
-----编辑
@MarkRamson 的评论回答了我的问题
【问题讨论】:
您能提供发生 UnicodeEncodeError 的行吗?你是怎么写这些推文的?你用 UTF-8 编码了吗? 今晚我会看,但我从 twitter API 收到了推文,并检查了文件的编码是 UTF-8 问题是您正在运行的控制台无法处理您要打印的字符:…
请参阅***.com/questions/3597480/… 以获得一些提示。
就是这样!非常感谢
【参考方案1】:
您应该在打开文件时指定编码:
tweets_file = open(tweets_data_path, "r", encoding="utf-8-sig")
【讨论】:
utf-8-sig 是有根据的猜测吗? ;) 那你应该为它争辩。 @Jan-PhilipGehrcke:U+2026 是在推文中有意义的省略号字符。此外,UTF-8 是任何 Twitter API 最可能使用的编码。所以是的,我会说这是一个有根据的猜测......( -sig 部分只是一种预防措施 - 如果有 BOM,它会处理它,如果没有,则不会造成伤害)。 好吧,相信了一半。并且对于其他读者来说很明显:数据来自随机文件 twitter_data.txt,因此我们实际上无法可靠地知道其中的数据是如何编码的。 我猜问题出在print
行而不是open
。
@georg:很可能,是的。 print(tweet.encode("ascii", errors="ignore").decode("ascii"))
可能会有所帮助...(而不是“ascii”,您应该使用终端的编码)。以上是关于python:unicodeEncodeError:“charpmap”编解码器无法编码字符“\u2026”的主要内容,如果未能解决你的问题,请参考以下文章
python -- 解决UnicodeEncodeError问题
Python请求:UnicodeEncodeError:'charmap'编解码器无法编码字符
Python通过'Git Bash'打印Unicode字符串得到'UnicodeEncodeError'
python—— 写入错误UnicodeEncodeError的解决办法
python3 UnicodeEncodeError错误,cx_oracle模块执行sql报错:UnicodeEncodeError: 'ascii' codec can't