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

Как заставить строки Python 2.x Unicode не печатать как u'string '?

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

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

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

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

Есть ли способ сообщить интерпретатору, что меня не интересует разница между нормальными строками и строками Unicode? Мне не нужен или нужен.

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

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

4b9b3361

Ответ 1

если вы хотите, просто напечатайте json:

>>> import json
>>> print json.dumps({u'key1':u'value', u'key2':u'value2'}, indent=4)
{
    "key2": "value2", 
    "key1": "value"
}

Ответ 2

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