Python выводит строки юникода в массивах в виде символов, а не кодовых точек - PullRequest
32 голосов
/ 13 апреля 2011

Если у меня есть словарь вида:

a = {u"foo": u"ბარ"}

и я пишу

>>> print a[u"foo"]

Я получаю

ბარ

как и ожидалось. Но если я напишу

>>> print a

Я получаю

{u'foo': u'\u10d1\u10d0\u10e0'}, но я бы предпочел, чтобы сами символы печатались.

Все данные в конечном итоге будут сброшены в базу данных, так что решить эту проблему не критично, но для отладки было бы неплохо, если бы я мог получить читаемый вывод при печати всего словаря. Есть ли способ сделать это?

Для тех, кому любопытно, сценарий грузинский, и да, там написано "бар".

1 Ответ

73 голосов
/ 13 апреля 2011

Это работает в моем терминале:

print repr(a).decode("unicode-escape")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...