无法弄清楚python查询。

时间:2015-02-07 18:49:36

标签: python mysql

我正在尝试将此查询发布到我的数据库中。问题是我从具有占位符的csv查询:我似乎无法获得:Time_Date_Uploaded varchar(255)DEFAULT NULL填充当前时间。这是我的代码:

    cursor = mydb.cursor() # declare object
now = time.strftime('%Y-%m-%d %H:%M:%S') #want to send the current time to the database.
cr.next() # need to skip first line of csv
for row in cr:
    cursor.execute('INSERT INTO loans2(LoanId, NoteId, OrderId, OutstandingPrincipal, AccruedInterest, Status, AskPrice, Markup_Discount, YTM, DaysSinceLastPayment, CreditScoreTrend, FICO_End_Range, Date_Time_Listed, NeverLate, Loan_Class, Loan_Maturity, Original_Note_Amount, Interest_Rate, Remaining_Payments, Principal_plus_Interest, Time_Date_Uploaded) VALUES ("%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s")' % tuple(row))
# #close the connection to the database.
    mydb.commit()
cursor.close()
print "Done"

1 个答案:

答案 0 :(得分:1)

我无法看到row有多少项。我认为它是一个列表。如果它的项目数等于数据库中的字段数减1,那么您应该能够在row.append(now)之前执行cursor.execute并且它可以正常工作。如果它具有与您拥有的字段完全相同的项目数,则必须抛出一些内容并将其替换为now,例如在row[-1] = now之前执行此cursor.execute。如果您不知道row列表中有多少个字段,请执行print len(row)作为调试。无论哪种方式,您都需要将now值放入row列表中。

P.S。我假设您正在使用print语句中的python 2,这就是为什么我使用相同的打印语义,如果我错了并且你在python 3上,请使用{{1而不是当然:))