在alembic中导入模块init_data

时间:2015-04-15 15:28:00

标签: python scrapy alembic

我是python + scrapy + alembic的新手。我找到了一种使用bulk_insert函数在alembic中插入一些init数据的方法。

我的代码:(直接插入)

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) 

我的问题:如何正确地做到这一点? (在这种情况下使用类型文件)。如何插入模块initdata。

谢谢

1 个答案:

答案 0 :(得分:0)

如果initdata是

形式的模块
data = [
   { 
       'id' : 1,
       'website': 'http://example',
       'xpath_pagination': '',
       'xpath_product': '',
   }
]

然后您可以在显示时使用

调用批量插入
import initdata
op.bulk_insert('table', initdata.data)

但是,如果initdata是一个文本文件,那么您需要放入一个具有适当结构的字典数组。在这种情况下,它自然适合JSON