Создание MySql Table из списка Python - PullRequest
2 голосов
/ 06 мая 2011

У меня большой список строк.Мне нужно создать таблицу MySQL, где каждая строка в списке является именем столбца (все столбцы являются целыми числами).(Я на питоне с sqlalchemy).

Я посмотрел примеры и похоже, что мне нужно явно написать каждый столбец в schema.Table, что не очень удобно для большого списка.

Возможно ли это?

Спасибо

1 Ответ

2 голосов
/ 06 мая 2011

Здесь можно использовать распаковку кортежей .

>>> column_names = ['col1', 'col2', 'col3']
>>> columns = (Column(name, Integer) for name in column_names)  
>>> table = Table('table_name', metadata, *columns) # unpacks Column instances

А вот расширенный пример того, как вы можете использовать это для программного создания имен столбцов из списка строк:

>>> column_names = ['col1', 'col2', 'col3']
>>> columns = (Column(name, Integer) for name in column_names)
>>> table = Table('data', metadata, Column('id', Integer, primary_key=True), *columns)
>>> class Data(object):
...:     def __init__(self, *args):
...:         for name, arg in zip(column_names, args):
...:             setattr(self, name, arg)
...:             
...:
>>> mapper(Data, table)
<<< <Mapper at 0x1026e9910; Data>
>>> data = Data(1, 2, 3)
>>> [x for x in dir(data) if x.startswith('col')] # see if all of our columns are there
<<< ['col1', 'col2', 'col3'] 
>>> data.col3 # great!
<<< 3           
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...