2017-06-16 97 views
0

我的程序有问题。我想从文件txt输入数据库。这是我的源代码没有足够的格式字符串参数python mysql

import MySQLdb 
import csv 
db=MySQLdb.connect(user='root',passwd='toor', 
         host='127.0.0.1',db='data') 
cursor=db.cursor() 
csv_data=csv.reader(file('test.txt')) 
for row in csv_data: 
     sql = "insert into `name` (`id`,`Name`,`PoB`,`DoB`) values(%s,%s,%s,%s);" 
     cursor.execute(sql,row) 
db.commit() 
cursor.close() 

运行该程序后,在这里的错误

Traceback (most recent call last): 
    File "zzz.py", line 9, in <module> 
    cursor.execute(sql,row) 
    File "/home/tux/.local/lib/python2.7/site-packages/MySQLdb/cursors.py", line 187, in execute 
    query = query % tuple([db.literal(item) for item in args]) 
TypeError: not enough arguments for format string 

,这是我的test.txt

4 
zzzz 
sby 
2017-10-10 

请帮帮忙,并在此先感谢。

+3

那么,你的'行'看起来像什么?它没有足够的元素 –

+0

你可以给我看一个'test.txt'文件的样子吗? – skr

+0

welp,我解决了它。感谢兄弟,你提醒我关于我的test.txt –

回答

0

现在您已经发布了CSV文件,现在您的错误应该很明显 - 每行仅包含一个字段,而不是SQL语句所需的四个字段。

如果这是数据文件的真实格式,则不是CSV数据。相反,你需要阅读每一组四行作为一条记录,像这样的东西可能会工作:

+0

什么代码,如果我将改变每一行包含四个领域? –

+0

如果所有四个字段在同一行上,并且一致地分隔,那么就按照您的问题使用'csv.reader()'。如果这不起作用,请使用示例数据更新您的问题。 – mhawke

相关问题