我刚刚在这个代码上遇到错误,比如
if rows[0] in line:
TypeError: 'in <string>' requires string as left operand, not tuple
我的代码:
import MySQLdb
db = MySQLdb.connect(host="localhost", # your host, usually localhost
user="root", # your username
passwd="mysql", # your password
db="sakila") # name of the data base
cursor = db.cursor()
# execute SQL select statement
cursor.execute("SELECT student FROM myclass")
rows=cursor.fetchall()
with open('qwer.txt','r') as file:
for line in file:
for row in rows:
if rows[0] in line:
stmt="select english from marks where student = :student"
cursor.execute(stmt,dict(student=row[0]))
print "english marks:",cursor.fetchall()[0][0]
请帮助,因为它没有为我提供任何没有错误的输出
答案 0 :(得分:1)
您正在使用rows[0]
,而您可能打算使用row[0]
:
for row in rows:
if row[0] in line:
rows
是元组列表,因此rows[0]
是第一个这样的元组。 row[0]
是当前行中的第一列(例如student
中的SELECT
列。)