我無法將我的頭充滿發生器,有時我碰巧用正確的方式使用它們,有時候我沒有。實現生成器來填充數據庫
我從.csv文件填充一個DB:
name, location
Tom, France
Doug, USA
Michael, UK
這裏是我的代碼:
def process_csv(filecsv):
f = open(filecsv)
f_csv = csv.reader(f)
headers = next(f_csv)
User = namedtuple('User', headers)
for user in f_csv:
user = [u.strip() for u in user]
user = User(*user)
yield user
def insert(cur, user):
u = list(user)[0] # it's a one-elem list so take it
cur.execute("INSERT INTO users (name, location) VALUES(%s, %s)",
(u.name, u.location))
if __name__ == '__main__':
cur = cxn.cursor()
user = process_csv(filecsv)
insert(cur, user)
當運行此,僅在第一行得到了插入到數據庫。你可以請建議如何解決它?
我們看不出調用這些函數中的任何一個。特別是,它們似乎沒有連接;他們都沒有打電話給對方。這些功能如何相關? – user2357112
對不起,現在更新。 – nutship
只是說如果這是一次性工作,大多數數據庫都有直接從CSV文件導入的功能。例如http://sqlite.org/cvstrac/wiki?p=ImportingFiles和http://dev.mysql.com/doc/refman/5.1/en/load-data.html – YXD