2015-04-15 2 views
0

Я новичок в python + scrapy + alembic. Я нахожу способ вставить некоторые данные init в alembic, используя функцию bulk_insert.импортировать модуль init_data в alembic

мой код: (прямая вставка)

op.bulk_insert('table', 
[ 
    { 
    'id' : 1, 
    'website': 'http://example', 
    'xpath_pagination': '', 
    'xpath_product': '', 
    }, 
    { 
    'id' : 1, 
    'website': 'http://example', 
    'xpath_pagination': '', 
    'xpath_product': '', 
    }, 
    { 
    'id' : 1, 
    'website': 'http://example', 
    'xpath_pagination': '', 
    'xpath_product': '', 
    }, 
]) 

А теперь, я хочу, чтобы изменить способ вставки из вне сайта

надежда код:

import initdata 
... 
op.bulk_insert('table', initdata.data) 

Мой quesion: как сделать это правильный путь? (в этом случае используется файл типа). Как вставить модуль initdata.

Благодаря

ответ

0

Если initdata является модуль формы

data = [ 
    { 
     'id' : 1, 
     'website': 'http://example', 
     'xpath_pagination': '', 
     'xpath_product': '', 
    } 
] 

, то вы можете вызвать массовую вставку, как вы показываете, с

import initdata 
op.bulk_insert('table', initdata.data) 

Если, однако, initdata является текст файл, то вам нужно будет поместить в массив словарей соответствующей структуры. В этом случае он, естественно, подходит к .

+0

Я создал модуль init в корневом проекте. /init/initdata.py (\ _ \ _ init \ _ \ _. py выходы ") и попробуйте импортировать в alembic (импортировать init или импортировать init.initdata). Но мне не удалось, cli отображают ошибки:" No module named init " – VoTue

Смежные вопросы