Форум сайта python.su
0
Как сделать так чтобы я получал данные в таком формате {'колонка':'значение'}?
Колонка это имя колонки из базы
Сейчас я получаю данные к примеру так data
Вот код:
import MySQLdb
Sql="select * from users"
def query(sql):
db = MySQLdb.connect(host="localhost", user="root", passwd="пароль", db="")
cursor = db.cursor()
cursor.execute(sql)
data = cursor.fetchall()
db.close()
return data
Офлайн
4
у курсора после выполнения запроса есть атрибут description, там все поля перечислены.
можно сделать что-то типа
data_dict = [ dict((field.name, row[i]) for i, field in enumerate(description)) for row in data ]
Отредактировано Suguby27 (Апрель 16, 2015 20:15:38)
Офлайн
39
Suguby27
С peewee никто не сотрудничает толком. Под нее практически ничего нет
Поэтом есть два варианта: или тормознутый джанговский ОРМ, или немного сложнее в понимании sqlalchemy. Peewee пока не вариант.
Офлайн
0
def query(sql):
db = MySQLdb.connect(host="localhost", user="root", passwd="", db="")
cursor = db.cursor()
cursor.execute(sql)
data = cursor.fetchall()
db.close()
data_dict = [dict((field.name, row[i]) for i, field in enumerate(cursor.description)) for row in data ]
return data_dict
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 7, in query
File "<stdin>", line 7, in <genexpr>
AttributeError: 'tuple' object has no attribute 'name'
Офлайн
4
4kpt_III
Suguby27С peewee никто не сотрудничает толком. Под нее практически ничего нет Поэтом есть два варианта: или тормознутый джанговский ОРМ, или немного сложнее в понимании sqlalchemy. Peewee пока не вариант.
Egor2010Потому что нужно не просто копипастить, а разбираться. Для начала - распечатайте содержимое cursor.description, проведите так сказать его интроспекцию, поймите как он устроен… иначе ничего не получится.
Почему не работает?
Офлайн
72
Egor2010Ка обычно - курить маны. DictCursor
Как сделать так чтобы я получал данные в таком формате {'колонка':'значение'}?
cursor = db.cursor(MySQLdb.cursors.DictCursor)
Отредактировано PooH (Апрель 17, 2015 13:12:20)
Офлайн
39
Suguby27
Алхимию и Джанго ОРМ они уже прошли.
А хвалят и джанго ОРМ
Это не показатель.Отредактировано 4kpt_III (Апрель 17, 2015 17:24:53)
Офлайн
4
4kpt_IIIНекоторые ездят на БМВ, некоторые - на тойотах, а есть и такие, которые ездят на грузовиках. Чего спорить-то? каждый выбирает себе под задачу и чтобы “удобно было”
Вы сами можете привести примеры, где peewee будет лучше алхимии?
Главное, что бы была возможность выбрать, правильно? Офлайн
0
Suguby27Пытался разобраться в чем проблема.
Офлайн
39
Suguby27
Главное, что бы была возможность выбрать, правильно?
Все примеры ее использования пока через ее SQLAlchemy Core Expressions.
Отредактировано 4kpt_III (Апрель 17, 2015 17:44:03)
Офлайн