Есть ли способ распечатать словарь, состоящий из строк Unicode, преобразовав их в другой код? - PullRequest
2 голосов
/ 20 апреля 2020

Я писал программу и немного застрял. Я пытаюсь добавить ключ и и значение для диктовки. Но все мои переменные в Unicode. Если я преобразую их в строку, кодируя их в utf-8, я получу тот же ответ.

   #! /usr/bin/env python
   # -*- coding: utf-8 -*-
   name = u'\u041d\u0435\u0433\u0440\u043e\u043d\u0438'
   surname = u'\u041b\u043e\u043d\u0434\u043e\u043d\u0441\u043a\u0438\u0439'
   info = {}
   info[name] = surname

Итак, если я пытаюсь распечатать имя:

    print(name) --> it prints the right answer

И если я пытаюсь распечатать данные диктанта:

    print(info) --> prints out unicode chars

PS Вывод должен быть написан на русском языке.

Ответы [ 2 ]

3 голосов
/ 20 апреля 2020

Обновление до Python 3 ....

>>> print(name)
Негрони
>>> print(info)
{'Негрони': 'Лондонский'}

Конечно, в зависимости от вашего проекта, но я очень рекомендую его. Особенно учитывая Sunsetting Python 2

2 голосов
/ 20 апреля 2020

Вот два способа.

name = u'\u041d\u0435\u0433\u0440\u043e\u043d\u0438'
surname = u'\u041b\u043e\u043d\u0434\u043e\u043d\u0441\u043a\u0438\u0439'
info = {}
info[name] = surname

#One way
{print(info[k]) for k in info}

#Another way
print(info[name].encode("unicode-escape").decode("unicode-escape"))
...