Найти - Пользователи
Полная версия: Python mysql {'колонка':'значение'}
Начало » Python для новичков » Python mysql {'колонка':'значение'}
1 2
Suguby27
Egor2010
Пытался разобраться в чем проблема.
Сделай
def query(sql):
    db = MySQLdb.connect(host="localhost", user="root", passwd="", db="")
    cursor = db.cursor()
    cursor.execute(sql)
    data = cursor.fetchall()
    print cursor.description
    db.close()
в распечатке пойми что это за тип данных и где находится имя колонки. А вообще камрад PooH подсказал что уже есть
cursor = db.cursor(MySQLdb.cursors.DictCursor)
используй лучше его.

4kpt_III
Как будто peewee - это ядреный прорыв в идеологии построения ОРМ, а алхимия это уже так, каменный век.
Для простых задачек типа домашней странички или для буха запилить отчет - простой орм лучше. Для чего-то сложного - алхимия (но я её не понял, если чесно, очень наворочена и доков минимум - было два года назад). А для высоких нагрузок - увы только нативный коннектор. Имхо. И давайте уже холивар заканчивать Всем - счастья в программировании!
4kpt_III
Suguby27
очень наворочена и доков минимум

Можно и закончить холивар, но только одно “но”. Документации все же больше чем на 900 страниц, мне кажется, достаточно.
Egor2010
Suguby27
Я хочу сравнить два способа,
Сделал как вы сказали
mport 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()
print cursor.description[i][0]
db.close()
i это колонка
Какой цикл нужен для формирования массива?
Suguby27
print cursor.description[i][0]
то есть на первом месте стоит имя колонки? отлично

тогда делай так (внутри цикла по строкам резалт-сета)
for i, column in enumerate(cursor.description):
    name = column[0]
    value = row[i]
получили название колонки и её значение - теперь надо все засунуть в словарь. Сможешь сам?
(если не знаешь что за enumerate - смотри доки)
(цикл по строкам резалт-сета - UPD http://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursor-fetchone.html - давно с сырым коннектором не работал…)
Egor2010
сделал это вот-так:
columns = [name[0] for name in cursor.description]
data=[]
for row in cursor:
data.append(dict(zip(columns, row)))
return data
плох или хорош этот код?
Suguby27
Вполне хорош я такой у себя где-то видел…
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB