Отладка вывести строку Unicode с обозначением \ U - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть словарь, содержащий строки с символами Unicode:

d = {'middle': "middle is:\U0001f004."}

В целях отладки я хотел бы напечатать d и получить вывод с той же нотацией:

print(d)
{'middle': "middle is:\U0001f004."}

Как мне это сделать?

Ответы [ 3 ]

0 голосов
/ 04 декабря 2018

Вы можете кодировать строковое представление словаря и кодировать его, используя unicode_escape.Это вернет объект bytes, который вы захотите снова декодировать, чтобы получить строку.

d = {'middle': 'middle is:\U0001f004.'}
print(str(d).encode('unicode_escape').decode())

Выходы:

{'middle': 'middle is:\U0001f004.'}

Это должно работать в широком диапазоне ситуаций, ноВообще говоря, удостовериться, что напечатанная строка соответствует коду, используемому для создания любой структуры данных, невозможно.

0 голосов
/ 04 декабря 2018

Python 3 имеет функцию ascii для этой цели.Любой символ вне набора символов ASCII отображается в качестве кода перехода:

>>> d = {'middle': "middle is:\U0001f004."}
>>> d
{'middle': 'middle is:?.'}
>>> print(ascii(d))
{'middle': 'middle is:\U0001f004.'}
0 голосов
/ 04 декабря 2018

При выводе строки закодируйте ее с помощью unicode_escape, например: string.encode('unicode_escape').

...