Torahのヘブライ語(Unicode)テキストでPythonテキスト解析プログラミングを実行しようとしています。私は成功したJSONデータをインポートすることができています https://github.com/Sefaria/Sefaria-Export/blob/master/json/Tanakh/Torah/Genesis/Hebrew/Tanach%20with%20Text%20Only.jsonPythonコンソール/ターミナル/スクリーンにUnicodeテキストが印刷されない
:ここ
は私がSefaria.orgから使用しています例のテキスト(ジェネシス)へのリンクです。
データを調べるために、通常のデータ抽出テスト+ PRINT()を使用したテスト出力を行います。
以下のコードでは、KEYSの出力のみがscreen/terminal/consoleにとどまっていることがわかりました。他のすべてのデータ(VALUES、ITEMS、および辞書キー 'テキスト'のVALUE)はすべて画面から消えます(データでコードを実行してください)。
ヘブライ語のテキスト(例:VALUES、ITEMS、VALUEは辞書キー 'text')を含むテキストであるため、標準のsysチェックを行い、次の出力を表示したため、 :
sys.stdin.encoding = cp1252
sys.stdout.encoding = cp1252
私は/エンコード/デコードを定義したり、Pythonの端末にUTF-8 UNICODE文字(ヘブライ語)の書かれた出力を可能にするために何かをする必要があるかもしれないことを把握します。
このアイデアを解決する方法はありますか?
## IMPORT NECESSARY MODULES
import json
import sys
## CHECK ENCODING AND PRINT/TEST OUTPUT
print("sys.stdin.encoding = ", sys.stdin.encoding)
print("sys.stdout.encoding = ", sys.stdout.encoding)
## READ JSON FILE & IMPORT DATA - UTF8 CODING TO READ HEBREW TEXT
json_data = open('DATA_1GENESIS.json', encoding="utf8").read()
## LOADS AND TRANSFORMS JSON DATA TO PYTHON DICTIONARY OBJECT
DictionaryData = json.loads(json_data)
print('\n')
print("IMPORTED JSON DATA TYPE = ", type(DictionaryData))
## LOOP THROUGH DATA AND PRINT
for item in DictionaryData:
print("ITEM = ",item, type(item), len(item))
## TEST OUTPUT
print('\n')
print("IMPORTED DICTIONARY DATA = ",DictionaryData, type(DictionaryData),len(DictionaryData))
## EXTRACT DICTIONARY KEYS - 'dict_keys' object
k = DictionaryData.keys()
print('\n')
print("KEYS = ",k,type(k),len(k))
## EXTRACT DICTIONARY VALUES - 'dict_values' object
v = DictionaryData.values()
print('\n')
print("VALUES = ",v,type(v),len(v))
## EXTRACT DICTIONARY ITEMS - 'dict_items' object
i = DictionaryData.items()
print('\n')
print("ITEMS = ",i,type(i),len(i))
## EXTRACT VALUE FOR KEY 'text' = DictionaryData['text']
text = DictionaryData['text']
print('\n')
print("TEXT = ", text, type(text), len(text))
EDIT
私は唯一のUnicodeヘブライ語の1行の簡単な印刷をテストするためのテストをしました。ここにコードがあり、それはPython screen/terminal/consoleに出力を出力するためにはうまくいきました。だから質問が残っています:上記の辞書から抽出された値がスクリーンに印刷された後に消えてしまうのはなぜですか(あなた自身のためにデータでコードを試してみてください)。
python 3
がデフォルトとして
utf-8
使用しているため、理由はあなたのエンコーディングではおそらくない
x = "בראשית ברא אלהים את השמים ואת הארץ"
print("x = ",x)
ターミナルの使用 'cp1252'ならば、あなたは、端末内の構成を変更したり、設定を変更する方法を – furas
の端末を変更する必要がありますか? –