Задать вопрос

Как преобразовать словарь Python в удобочитаемый вид?

Есть словарь вот в таком виде:

{'fourbluepair': {'lect': '\xd0\x9c\xd0\xbe\xd1\x81\xd1\x83\xd0\xbd\xd0\xbe\xd0\xb2\xd0\xb0 \xd0\x9e.\xd0\x93.', 'cab': '0-416', 'name': '\xd0\xad\xd0\xba\xd0\xbe\xd0\xbd. \xd0\xbf\xd1\x80\xd0\xb5\xd0\xb4\xd0\xbf\xd1\x80\xd0\xb8\xd1\x8f\xd1\x82\xd0\xb8\xd1\x8f'}, 'threeredpair': {'lect': '\xd0\x91\xd0\xbe\xd0\xbb\xd0\xb3\xd0\xb0\xd1\x80\xd0\xb8\xd0\xbd\xd0\xb0 \xd0\x95.\xd0\x92.', 'cab': '0-218', 'name': '\xd0\xa2\xd0\xb5\xd0\xbe\xd1\x80\xd0\xb8\xd1\x8f \xd1\x8d\xd0\xba\xd0\xbe\xd0\xbd. \xd0\x98\xd0\xa2'}, 'fourredpair': {'lect': '\xd0\xa0\xd1\x83\xd1\x82\xd0\xba\xd0\xb0\xd1\x83\xd1\x81\xd0\xba\xd0\xb0\xd1\x81 \xd0\xa2.\xd0\x9a.', 'cab': '0-321', 'name': '\xd0\xad\xd0\xba\xd0\xbe\xd0\xbd. \xd0\xbf\xd1\x80\xd0\xb5\xd0\xb4\xd0\xbf\xd1\x80\xd0\xb8\xd1\x8f\xd1\x82\xd0\xb8\xd1\x8f'}, 'threebluepair': {'lect': '\xd0\x91\xd0\xbe\xd0\xbb\xd0\xb3\xd0\xb0\xd1\x80\xd0\xb8\xd0\xbd\xd0\xb0 \xd0\x95.\xd0\x92.', 'cab': '0-218', 'name': '\xd0\xa2\xd0\xb5\xd0\xbe\xd1\x80\xd0\xb8\xd1\x8f \xd1\x8d\xd0\xba\xd0\xbe\xd0\xbd. \xd0\x98\xd0\xa2'}, 'day_of_week': u'\u041f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a'}


нужно получить его в удобочитаемом виде, то есть:

{<br/>
 'fourbluepair':<br/>
 {<br/>
 'lect': '\xd0\x9c\xd0\xbe\xd1\x81\xd1\x83\xd0\xbd\xd0\xbe\xd0\xb2\xd0\xb0 \xd0\x9e.\xd0\x93.',<br/>
 'cab': '0-416',<br/>
 'name': '\xd0\xad\xd0\xba\xd0\xbe\xd0\xbd. \xd0\xbf\xd1\x80\xd0\xb5\xd0\xb4\xd0\xbf\xd1\x80\xd0\xb8\xd1\x8f\xd1\x82\xd0\xb8\xd1\x8f'<br/>
 },<br/>
 'threeredpair':<br/>
 {<br/>
 'lect': '\xd0\x91\xd0\xbe\xd0\xbb\xd0\xb3\xd0\xb0\xd1\x80\xd0\xb8\xd0\xbd\xd0\xb0 \xd0\x95.\xd0\x92.',<br/>
 'cab': '0-218',<br/>
 'name': '\xd0\xa2\xd0\xb5\xd0\xbe\xd1\x80\xd0\xb8\xd1\x8f \xd1\x8d\xd0\xba\xd0\xbe\xd0\xbd. \xd0\x98\xd0\xa2'<br/>
 },<br/>
 'fourredpair':<br/>
 {<br/>
 'lect': '\xd0\xa0\xd1\x83\xd1\x82\xd0\xba\xd0\xb0\xd1\x83\xd1\x81\xd0\xba\xd0\xb0\xd1\x81 \xd0\xa2.\xd0\x9a.',<br/>
 'cab': '0-321',<br/>
 'name': '\xd0\xad\xd0\xba\xd0\xbe\xd0\xbd. \xd0\xbf\xd1\x80\xd0\xb5\xd0\xb4\xd0\xbf\xd1\x80\xd0\xb8\xd1\x8f\xd1\x82\xd0\xb8\xd1\x8f'<br/>
 },<br/>
 'threebluepair':<br/>
 {<br/>
 'lect': '\xd0\x91\xd0\xbe\xd0\xbb\xd0\xb3\xd0\xb0\xd1\x80\xd0\xb8\xd0\xbd\xd0\xb0 \xd0\x95.\xd0\x92.',<br/>
 'cab': '0-218',<br/>
 'name': '\xd0\xa2\xd0\xb5\xd0\xbe\xd1\x80\xd0\xb8\xd1\x8f \xd1\x8d\xd0\xba\xd0\xbe\xd0\xbd. \xd0\x98\xd0\xa2'<br/>
 },<br/>
 'day_of_week': u'\u041f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a'<br/>
}
  • Вопрос задан
  • 8264 просмотра
Подписаться 3 Оценить 1 комментарий
Решения вопроса 1
@MikhailEdoshin
from pprint import pprint
pprint(mydict)
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Imbolc
@Imbolc
import simplejson as json

def pp(obj, *args, **kwargs):
    '''pprint с раскодированым выводом русских строк'''
    def default(v):
        try:
            ret = str(v)
        except:
            ret = 'not json serializable'
        if len(ret) > 50:
            ret = ret[:50] + ' ...'
        return ret
    print json.dumps(obj, ensure_ascii=False, indent=4,
        default=default).encode('utf-8')
Ответ написан
Комментировать
Nostromo
@Nostromo
Добавлю еще более смешной вопрос — а можно, чтобы выводилось не в юникоде, а в читабельном виде для человека при печати словаря (как я понимаю, в str представлении)?
Питоном пользуюсь только как прикладным инструментом, это бы очень помогло при ведении логов и некоторых расчетов.
Ответ написан
Bteam
@Bteam
Используй ipython,
In [1]: a = {'a':1}

In [2]: a
Out[2]: {'a': 1}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы