2016-04-11 13 views
0

私はmysqlにcsvファイルを挿入しようとしています。これは私のコードです。Pythonからmysqlに挿入

path = r'C:\Users\ravi\Desktop\Book1.csv' 
with open(path, 'rb') as csvfile: 
    csv_data = csv.reader(csvfile, delimiter=' ', lineterminator=" ") 
    for row in csv_data: 
     print row 
     cur.execute("INSERT INTO testtable (id,name) VALUES (%s, %s)" % row) 

エラーは次のとおりです。

cur.execute("INSERT INTO testtable (id,name) VALUES (%s, %s)" % row) 
TypeError: not enough arguments for format string. 

私はこの

+0

印刷 'row'の値は何ですか? – alecxe

+0

これはcsvファイルの1行目のリストです。この場合、csvファイルのヘッダーは['id'、 'name']です。 – venkatsai

+0

あなたが 'csv_data = csv.reader(csvfile、delimiter = '')'として読者を定義するとどうでしょうか。 – alecxe

答えて

0

を解決してください、あなたは右の区切り文字を使用していることを確認しています?

csv_data = csv.reader(csvfile, delimiter=' ', lineterminator=" ") 

CSVの場合、それはすべきではない、csv.readerための実際

csv_data = csv.reader(csvfile) 

()、

別個フィールドに用いられる1文字列。デフォルトは '、'です。

https://docs.python.org/3/library/csv.html

INSERT文のためにこれを試してください: -

cur.execute("INSERT INTO testtable (id,name) VALUES (%s, %s)" % (row[0],row[1])) 
+0

私は読者の定義を変えてみましたが、どのように同じエラーが続くのでしょうか?私はエラーが挿入文であると思う – venkatsai

+0

読者の定義を訂正していただきありがとうございますplsは挿入文 – venkatsai

+0

私は答えを更新しました...助けてください今すぐお試しください今すぐお試しください – Naruto

関連する問題