Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Sqlite一次插入一个数字字符串_Python_Sql_Sqlite - Fatal编程技术网

Python Sqlite一次插入一个数字字符串

Python Sqlite一次插入一个数字字符串,python,sql,sqlite,Python,Sql,Sqlite,所以我制作了一个python脚本,它从whois结果列表中收集域名的创建日期和过期日期 现在我想把这些日期插入表中,希望得到的结果是 24.1.2005 24.1.2017 22.3.2002 但是脚本插入到数据库中的是 ('2') ('4') ('.') ('1') 我试着将数据库中的数据类型转换成我能想象到的任何东西,但没有成功 def date(): o = open('outputfile.rtf') for line in o: line = line.replace

所以我制作了一个python脚本,它从whois结果列表中收集域名的创建日期和过期日期

现在我想把这些日期插入表中,希望得到的结果是

24.1.2005
24.1.2017
22.3.2002
但是脚本插入到数据库中的是

('2')
('4')
('.')
('1')
我试着将数据库中的数据类型转换成我能想象到的任何东西,但没有成功

def date():

o = open('outputfile.rtf')

for line in o:

    line = line.replace('\n', '') //Just removing some breaks




    if 'created' in line:

        line = line.replace('created:  ', '')

        creationdate = str(line)

        print (creationdate)
        c.executemany("INSERT INTO pvm (creationdate) VALUES (?)", creationdate)


    conn.commit()
编辑: 您能否尝试将creationdate重新格式化为:

creationdate = ['24.1.2005', '22.3.2002', '20.3.2006', '11.12.2013', '22.2.2005', '19.7.2005']
注:除上述内容外,matsutus将其代码更新为以下行:

c.execute("INSERT INTO pvm (creationdate) VALUES (?)", (line,)) 
两条线的结合解决了这个问题


*由提问者编辑*

将数据转换为数组,然后确保执行插入

c.execute("INSERT INTO pvm (luomispvm) VALUES (?)", (line,))
而不是

c.execute("INSERT INTO pvm (luomispvm) VALUES (?)", line)

修好了

我将它改为c.execute(“插入日期(creationdate)值(?)”,creationdate),现在它给我的只是sqlite3.ProgrammingError:提供的绑定数量不正确。当前语句使用1,提供了9。以下行的结果是什么:“print(creationdate)”?感谢您提供的信息,我建议进行两项更改:1)executemany使用%s而不是?。2) 更改creationdate数据的格式。-您是否可以尝试两个更改(首先-仅一个更改,然后同时尝试两个更改)您是否将数组与原始的executemany命令一起尝试。