Подтвердить что ты не робот

Python печатает строки unicode в массивах как символы, а не кодовые точки

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

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

и я пишу

>>> print a[u"foo"]

Я получаю

ბარ

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

>>> print a

Я получаю

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

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

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

4b9b3361

Ответ 1

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

print repr(a).decode("unicode-escape")

Ответ 2

Томас ответил абсолютно правильно. Я просто хочу добавить эту строку для всех, кто хочет более читаемый вывод:

print json.dumps(a, indent=4, default=str).decode('unicode-escape')