Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 27, 2012 09:49:09

tfox
Зарегистрирован: 2012-04-13
Сообщения: 55
Репутация: +  0  -
Профиль   Отправить e-mail  

Как представить таблицу БД в Python?

Всем привет. Вопрос от новичка не пенайте

Мне необходимо прочитать таблицу из базы данных и загрузить ее в некий “питоновский-массив”. Затем пройтись построчно по этому массиву и при необходимости изменять его.

Вопрос такой: как организовать такой питоновский-массив? Используя списки, словари и т.д.

Офлайн

#2 Сен. 27, 2012 09:56:06

GaiveR
От:
Зарегистрирован: 2011-08-13
Сообщения: 122
Репутация: +  16  -
Профиль   Отправить e-mail  

Как представить таблицу БД в Python?

Офлайн

#3 Сен. 27, 2012 09:59:48

tfox
Зарегистрирован: 2012-04-13
Сообщения: 55
Репутация: +  0  -
Профиль   Отправить e-mail  

Как представить таблицу БД в Python?

GaiveR
http://lmgtfy.com/?q=python+read+db+table

Вы не поняли вопрос. Меня не интересует чтение из базы данных.

Как правильно представить таблицу в Питоне?

Офлайн

#4 Сен. 27, 2012 10:08:42

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

Как представить таблицу БД в Python?

в виде списка списков



Офлайн

#5 Сен. 27, 2012 10:31:46

tfox
Зарегистрирован: 2012-04-13
Сообщения: 55
Репутация: +  0  -
Профиль   Отправить e-mail  

Как представить таблицу БД в Python?

Почитал за словари.
Может быть использовать их. Где ключ это будет имя поля таблицы, а значение это ячейка строки.

Офлайн

#6 Сен. 27, 2012 10:53:48

Viktor_Zorichev
Зарегистрирован: 2012-09-15
Сообщения: 14
Репутация: +  3  -
Профиль   Отправить e-mail  

Как представить таблицу БД в Python?

Но ведь название поля одно для всех соотв. ячеек в строках. То есть

d['поле'] = 'значение ячейки строки 1'
Куда записать значение ячейки из строки 2?
Как уже говорили, список списков - хороший вариант.

Отредактировано Viktor_Zorichev (Сен. 27, 2012 10:55:55)

Офлайн

#7 Сен. 27, 2012 11:09:52

tfox
Зарегистрирован: 2012-04-13
Сообщения: 55
Репутация: +  0  -
Профиль   Отправить e-mail  

Как представить таблицу БД в Python?

Viktor_Zorichev
Куда записать значение ячейки из строки 2?

Думаю над этим:

d[id] = 101  d[name] = Ivanov
d[id] = 102  d[name] = Petrov
d[id] = 103  d[name] = Sidorov

То есть множество словарей. Словарь не упорядочен но не беда. Он имеет пару ключ значение.

Одна строка в БД это один словарь в Pythone.
Словарь нельзя увеличить/уменьшить как и количество полей в таблицы БД.
А список можно увеличить/уменьшить как и количество строк в таблице БД.

Отсюда следует, что строку таблицы можно ассоциировать со словарем, а всю таблицу со списком.

Отредактировано tfox (Сен. 27, 2012 11:24:21)

Офлайн

#8 Сен. 27, 2012 13:38:49

Fibio
От:
Зарегистрирован: 2010-09-14
Сообщения: 74
Репутация: +  2  -
Профиль   Отправить e-mail  

Как представить таблицу БД в Python?

http://python.su/blogs/python/9-pitonicheskoe-myishlenie/
обратите в нимание на раздел “Кортежи – это не списки «только для чтения»”
т.е. кортеж - это строка из бд,
и "http://python.su/blogs/python/5-interesnyie-moduli-kotoryie-oblegchayut-nam-zhizn/
раздел ”Именованный кортеж - Namedtuple"



Офлайн

#9 Сен. 27, 2012 14:16:34

tfox
Зарегистрирован: 2012-04-13
Сообщения: 55
Репутация: +  0  -
Профиль   Отправить e-mail  

Как представить таблицу БД в Python?

Вот. Словарь мне понравился тем, что можно работать не с индексом, а с именем элемента. Удобно. И похоже на базу данных. Но словарь изменяемый тип данных. Это делает его не пригодным аналогом.

Именованный кортеж. Не изменяемый тип данных. Добавить/удалить элементы нельзя. Но само значение элементов поменять можно. Прям как в базе данных. И самая главная фишка. Теперь к элементам можно обращаться по имени, а не по индексу.

Предполагаю, что список именованных кортежей - это есть таблица из реляционной базы данных

Спасибо за наводку.

Офлайн

#10 Сен. 27, 2012 14:23:20

Soteric
От:
Зарегистрирован: 2010-09-19
Сообщения: 352
Репутация: +  20  -
Профиль   Отправить e-mail  

Как представить таблицу БД в Python?

Думаю использование классов может существенно упростить задачу.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version