如何使用pandas处理unicode字符并打印到屏幕?

时间:2017-02-28 00:45:37

标签: python excel 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(最近一次调用最后一次):文件   “GoogleSpreadsheetToJson.py”,第27行,in       print(sheet)文件“C:\ Python34 \ lib \ encodings \ cp850.py”,第19行,编码       return codecs.charmap_encode(input,self.errors,encoding_map)[0] UnicodeEncodeError:'charmap'编解码器不能编码   位置10917-10922:字符映射到

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

  

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

我是否可以使用pandas进行电子表格处理或解决此问题?

1 个答案:

答案 0 :(得分:2)

一些选项:

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