尝试将记录从CSV加载到mysql

时间:2014-07-13 23:41:11

标签: mysql csv python-3.x

import csv
import MySQLdb

conn = MySQLdb.connect('localhost','tekno','poop','media')

cursor = conn.cursor()

txt = csv.reader(file('movies.csv'))
for row in txt:
    cursor.execute('insert into shows_and_tv(watched_on,title,score_rating)' 'values     ("%s","%s","%s")',row)

conn.close()

当我跑步时,我得到了

TypeError: not enough arguments for format string

但匹配

csv格式为

dd-mm-yyyy,string,tinyint

监视数据库中的字段

1 个答案:

答案 0 :(得分:0)

我没有可以使用的mysql数据库。所以我在sqlite中做了你需要的东西。根据您的需要调整它应该很容易。

import csv
import sqlite3
from collections import namedtuple

conn = sqlite3.connect('statictest.db')
c = conn.cursor()

c.execute('''CREATE TABLE if not exists movies (ID INTEGER PRIMARY KEY AUTOINCREMENT, 'watched_on','title','score_rating')''')

record = namedtuple('record',['watched_on','title','score_rating'])


SQL ='''
INSERT INTO movies ("watched_on","title","score_rating") VALUES (?,?,?)
'''


with open('statictest.csv', 'r') as file:

    read_data = csv.reader(file)
    for row in read_data:
        watched_on, title, score_rating = row
        data = (record(watched_on, title, score_rating))
        c.execute(SQL, data)
        conn.commit()