Как сделать так, чтобы строки Python 2.x Unicode не печатались как u'string '? - PullRequest
15 голосов
/ 25 июня 2011

В настоящее время я тестирую веб-сервис, который возвращает большие объемы данных JSON в виде словарей.Все ключи и значения для этих словарей являются строками Юникода, и поэтому они печатаются как

{u'key1':u'value', u'key2':u'value2'}

при выводе на экран в интерактивном интерпретаторе.

Теперь представьте, что это 3-глубокий уровень, словарь из 40 элементов.Все эти u символы загромождают дисплей, затрудняя, ​​на первый взгляд, представление о реальных данных.Даже при использовании pprint .

Можно ли как-то сказать интерпретатору, что меня не волнует разница между обычными строками и строками Юникода?Я не нуждаюсь или не хочу u .

Единственное, что я смог найти, это переменная окружения PYTHONIOENCODING.К сожалению, установка «ascii» или «latin-1» не заставит эти u исчезнуть.

Я использую Python 2.6, и я использую либо обычныйинтерпретатор Python или iPython.

Ответы [ 2 ]

18 голосов
/ 25 июня 2011

если вам нужен json, просто напечатайте json :

>>> import json
>>> print json.dumps({u'key1':u'value', u'key2':u'value2'}, indent=4)
{
    "key2": "value2", 
    "key1": "value"
}
0 голосов
/ 25 июня 2011

Почему бы вам не создать собственную функцию для печати словаря? Стандартный формат Python подходит для быстрой и простой отладки, но абсолютно не подходит для 3-уровневого словаря из 40 элементов.

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