2017-06-16 94 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

相關問題