Python:CSV到DB行的词典列表?

时间:2016-05-10 15:09:18

标签: python sqlalchemy flask-sqlalchemy

当我的瓶子应用程序启动时,它需要通过SQLalchemy向Postgres添加一堆数据。我正在寻找一种很好的方法来做到这一点。数据采用TSV格式,我已经有了一个SQLalchemy db.model模式。现在:

for datafile in datafiles:
    with open(datafile,'rb') as file:
        # reader = csv.reader(file, delimiter='\t')
        reader = csv.DictReader(file, delimiter='\t', fieldnames=[])
        OCRs = # somehow efficiently convert to list of dicts...
        db.engine.execute(OpenChromatinRegion.__table__.insert(), OCRs)

有更好,更直接的方式吗?否则,生成OCRs的最佳方法是什么?

建议here的解决方案似乎很笨拙。

1 个答案:

答案 0 :(得分:1)

import csv
from collections import namedtuple

fh = csv.reader(open(you_file, "rU"), delimiter=',', dialect=csv.excel_tab)
headers = fh.next()
Row = namedtuple('Row', headers)
OCRs = [Row._make(i)._asdict() for i in fh]
db.engine.execute(OpenChromatinRegion.__table__.insert(), OCRs)

# plus your loop for multiple files and exception handling of course =)