Не может печатать китайские иероглифы в VIM - PullRequest
0 голосов
/ 29 мая 2018

Есть фрейм данных

userid     movie
  1        hh泰坦尼克号
  2        Hungary Game 饥饿游戏

Название фильма содержит китайский

Тип userID равен int64, тип movie равен str.

Я использую метод pd.Series(df.movie.values,index=df.userid).to_dict() для преобразования dataframe в dict.Затем я печатаю dict, китайские иероглифы отображаются следующим образом \xe8\x8b\xb1\xe9\x80\x9f\xe4\xba\x9a\xe4\xb8\xa4\xe5\x8e\xa2\xe6\xac\xa7\xe5\xae\x9d.Я использую utf-8 в файле, и китайские символы обычно отображаются в dataframe.Помогите пожалуйста

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

На самом деле нет никакой связи между этой проблемой и json, или pandas, или dataframe, или vim, или чем-либо еще.

Это просто проблема отображения символов, которые не являютсякодируется ascii.

И это произойдет только тогда, когда вы используете Python2, но не Python3.

Вы можете подтвердить это в Python2:

a = {1: "泰坦尼克号"}
print a
# {1: '\xe6\xb3\xb0\xe5\x9d\xa6\xe5\xb0\xbc\xe5\x85\x8b\xe5\x8f\xb7'}

Но выпо-прежнему может печатать его как обычно:преобразуйте все dict в str с кодировкой utf-8, чтобы оно работало.


Кстати, best решение заключается в использовании Python3.

0 голосов
/ 29 мая 2018

Вы можете импортировать модуль JSON, а затем:

print json.dumps(a, ensure_ascii = False, encoding = "UTF-8")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...