Форум сайта python.su
0
Доброго времени суток. Возникла такая проблема. При выводе из БД символы на русском языке выводятся в виде знкаков вопросов либо в виде символов юникода. Проблему не смог решить поиском. Предлагают решения которые не срабатывают в моем случае.
# -*- coding: utf-8 -*- import MySQLdb import string db = MySQLdb.connect(host='localhost', user='root', passwd='83448344f', db='tests', use_unicode=True) db.set_character_set('utf8') cursor = db.cursor() cursor.execute('SET NAMES utf8;') cursor.execute('SET CHARACTER SET utf8;') cursor.execute('SET character_set_connection=utf8;') sql = """SELECT `name` FROM `city` ORDER BY `name` DESC""" cursor.execute(sql) data = cursor.fetchall() # перебираем записи for rec in data: print rec db.close()
(u'\u0421\u0430\u043d\u043a\u0442-\u041f\u0435\u0442\u0435\u0440\u0431\u0443\u0440\u0433',)
(u'\u0421\u0430\u043c\u0430\u0440\u0430',)
(u'\u041c\u043e\u0441\u043a\u0432\u0430',)
(u'\u041a\u0430\u0437\u0430\u043d\u044c',)
(u'\u0412\u0435\u043b\u0438\u043a\u0438\u0439 \u041d\u043e\u0432\u0433\u043e\u0440\u043e\u0434',)
Офлайн
568
А так?
for rec in data: print rec[0]
Офлайн
0
Ощущаю себя ………. Спасибо. Все заработало как нужно. А почему вот именно так работает?Просто я и decode и encode и всяко разно делал, и с бд мудрил
Отредактировано Notan1310 (Сен. 21, 2014 16:47:27)
Офлайн
568
class Foo(object): def __init__(self, value): self.value = value def __repr__(self): return "<class Foo instance in repr>" def __str__(self): return str("value=%s" % self.value) t = (Foo(1), Foo(2), Foo(3)) print t for foo in t: print foo
Офлайн
58
Еще есть фокус, который работает для словарей, списков и наборов:
print repr(dict_or_list_or_tuple).decode("unicode_escape")
Это нормально.
Отредактировано 4kpt_II (Сен. 21, 2014 17:04:37)
Офлайн
0
Огромное спасибо. Очень помогли ваши рекомендаций!!!
Офлайн
58
Notan1310
Напрямую не рекомендую работать с мускулом. Лучше использовать ORM. Пока лучший вариант - sqlalchemy.
Отредактировано 4kpt_II (Сен. 21, 2014 18:26:23)
Офлайн
0
А как вы относитесь к библиотеке pandas? Я мало литературы на русском нашел. Но в целом мануал на английском понятен. Софт для своих целей пишу, иной раз охота стату посмотреть визуально. Стоит ли она изучения? Продуктивна ли? Ваши аналоги? Сорри может тему надо создавать отдельную, но тут вопрос общий, рискнул добавить.
sqlalchemy беру на вооружение. Не знал. Спасибо.
Офлайн