从CSV文件向INSERT添加一个额外的列

时间:2018-03-24 03:10:59

标签: python sql-server python-3.x pypyodbc

我需要在下面的插入中附加一个列/值。每行的值都是相同的。我可以将列名附加到cols元组,但似乎无法将值附加到data.I我正在读取数百种不同格式的文本文件,目标是sql server table任何帮助都非常感激。致谢!!!

    with open (full_path, 'r',encoding=my_encoding) as f:
        reader = csv.reader(f, delimiter=my_delim, quotechar=my_quote)
        cols = next(reader) 
        qry = 'insert into '+ my_table_name +'({0}) values ({1})'
        qry = qry.format(','.join(cols), ','.join('?' * len(cols)))
        cursor = cnn.cursor()
        for data in reader:
           cursor.execute(qry, data)
        cursor.commit()

1 个答案:

答案 0 :(得分:0)

由于您使用csv的方式返回列表,您只需将额外的列名称附加到cols列表...

cols = next(reader) + ['MY_FILE_NUMBER']

...并将额外值附加到循环内的data列表的末尾

for data in reader:
    crsr.execute(qry, data + [100])