2017-02-28 21 views
1

私は一連のユニコード文字(ランサムウェア名)を含むスプレッドシートを処理しています。現時点でパンダでユニコード文字を処理して画面に印刷するにはどうすればいいですか?

私は、次のしている:

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 (most recent call last): File "GoogleSpreadsheetToJson.py", line 27, in print(sheet) File "C:\Python34\lib\encodings\cp850.py", line 19, in encode return codecs.charmap_encode(input,self.errors,encoding_map)[0] UnicodeEncodeError: 'charmap' codec can't encode characters in position 10917-10922: character maps to

私はシート私が使用しているからだと信じています

"ПРОЧТИ_МЕНЯ.txt READ_ME.txt"

私は処理する方法がありますか、またはpasso私のスプレッドシートにまだパンダを使っていますか?

+0

あなたの端末はユニコードをサポートしていますか? –

+0

@ juanpa.arrivillaga私はそれを考慮していませんでした。私は今bashでそれをテストし、更新するでしょう... – Codingo

+0

前にユニコードをサポートしていない端末に 'print'しようとすると、' UnicodeEncodeError'を見ました... –

答えて

2

いくつかのオプション:代わりに、CP850に出力する(システム上のコンソールのデフォルトのエンコーディング)をエンコードしようとしているのコンソールへの書き込みにWindowsのUnicodeのAPIを使用してのPython 3.6へ

  1. スイッチ、。
  2. コンソールエンコーディングをchcp 65001(UTF-8)に変更します。
  3. スクリプトを実行する前に環境変数pythonioencoding=cp850:replaceを設定してください。これにより、エラーハンドラがstrictからreplaceに変更されます。 cp850でサポートされていない文字には疑問符がつきます。
+0

Python 3.4 ...とても近いです!私は更新して引っ張ります。助けてくれてありがとう! – Codingo

関連する問題