2014-10-01 15 views
-1

Я пытаюсь взять данные excel, которые являются var 'y', которые являются числовыми данными, и помещают их в мой SQL-столбец «Закрыть».TypeError: объект 'str' не является вызываемым

import xlrd 
import MySQLdb 

#get excel data 
file_location = "C:/Users/.../.../...xls" 
workbook = xlrd.open_workbook(file_location) 
sheet = workbook.sheet_by_name("Sheet1.1") 
y = sheet.col_values(3, start_rowx=2, end_rowx=31) 

#open connection SQL 
db=MySQLdb.connect(host = "host", 
        user = "user", 
        passwd = "passwd", 
        db = "test") 
cursor = db.cursor() 
cursor.execute("""UPDATE uk SET Close.....""") 

db.commit() 

Однако я не уверен, что писать, чтобы вставить его.

cursor.execute("""UPDATE uk SET Close = %s""", (y,)) 

Выдает ошибку, что:

OperationalError: (1241, 'Operand should contain 1 column(s)') 

Спасибо за любую помощь или направление вы можете предоставить.

ответ

2

Вы забываете 2 запятые:

cursor.execute("""UPDATE uk SET Close = %s""", (y,)) 

Без них, вы выполняете:

"""..."""(y) 

например пытаясь вызвать строковый объект, как если бы это была функция.

Смежные вопросы