sqlite3.ProgrammingError:提供的绑定数量不正确。

时间:2018-05-21 10:12:00

标签: python

def populate_db(cur, csv_fp):
    rdr = csv.reader(csv_fp)
    cur.executemany('''INSERT INTO tickets (Key , \
        Id  , \
        Project , \
        Type , \
        Status , \
        Priority , \
        Assignee , \
        Reporter , \
        Created , \
        Updated , \
        Date_due , \
        Summary , \
        Description , \
        Components , \
        Affects_Versions , \
        Fix_Versions  , \
        Environment , \
        Resolution , \
        Votes) \
        VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)''', rdr)

此代码在我的pycharm编辑器上使用2.7解释器正常工作。 但是在带有2.6的linux机器上它会出现上述错误。 请直接。

2 个答案:

答案 0 :(得分:0)

尝试使用list literal或使rdr成为元组。因为rdr被视为输入序列,所以需要将其转换为元组或列表:

[rdr]
#or try this
(rdr,)

答案 1 :(得分:0)

由于这可以在IDE(Pycharm)中使用,但不能在生产中使用,因此我改用带字典的csv阅读器。掉落的方块。

def populate_dict(mydict, csv_fh):
    rdr = csv.DictReader(csv_fh, ['Key', 'Description'])
    mydict.extend(rdr)