如何处理pandas和打印屏幕的Unicode字符?

我正在处理包含一系列unicode字符(勒索软件名称)的电子表格。

目前我有以下几点:

import urllib.request import pandas as pd SOURCESHEET = 'https://docs.google.com/spreadsheets/d/1TWS238xacAto-fLKh1n5uTsdijWdCEsGIM0Y0Hvmc5g/pub?output=xlsx' WORKBOOK = 'RansomwareOverview.xlsx' # download and save ransomware overview file locally try: urllib.request.urlretrieve(SOURCESHEET, WORKBOOK) except IOError: print('An error occured trying to write an updated spreadsheet. Do you already have it open?') except urllib.error.URLError: print('An error occured trying to download the file. Please check the source and try again') sheet = pd.read_excel(open(WORKBOOK,'rb'), sheetname='Ransomware') print(sheet) 

当我尝试print表格的内容时,我收到以下内容:

Traceback(最近一次调用的最后一个):第27行的文件“GoogleSpreadsheetToJson.py”在print(sheet)文件的“C:\ Python34 \ lib \ encodings \ cp850.py”中,第19行,编码返回codecs.charmap_encode(input ,self.errors,encoding_map)[0] UnicodeEncodeError:'charmap'编解码器无法对位置10917-10922中的字符进行编码:字符映射到

我相信这是因为我正在使用的工作表具有以下属性:

“ПРОЧТИ_МЕНЯ.txtREAD_ME.txt”

有办法我可以处理,或者还可以在我的电子表格中使用pandas吗?

一些选项:

  1. 切换到Python 3.6,它使用Windows的Unicode API写入到控制台,而不是尝试编码,以cp850(控制台的系统默认编码)输出。
  2. 使用chcp 65001 (UTF-8)更改控制台编码。
  3. 设置环境variablespythonioencoding=cp850:replace在运行脚本之前进行pythonioencoding=cp850:replace 。 这将error handling程序从strict更改为replace 。 你会得到cp850不支持的字符的问号。