Я практиковал с помощью функции генератора в питоне, поэтому я определил функции следующим образом:Использование функции генератора питон
def MySQL_product():
#Establish connection to database
try:
connection = msql.connect(host = 'localhost', user = 'max', passwd = 'password', db = 'schools')
except:
pass
#Iterate through each product and insert them in database
with connection:
cursor = connection.cursor()
cursor.execute("SELECT name, age, gender, school
WHERE GroupId = 'student' AND Exchange = 'foreign'")
for product in cursor.fetchall():
yield product
def main():
for column in range (0, number_of_schools):
for product in MySQL_product():
print product
Однако, когда я запускаю этот код, я вижу, как выход generator object at ...
Я пытаюсь для печати содержимого, которое находится в базе данных. Кроме того, ни один из операторов print
в MySQL_product()
не выполнен. Точка генератора заключается в том, что вместо возврата списка всех строк в базе данных он должен возвращать его один за другим. Затем я хотел получить/напечатать эти элементы. Что я могу сделать, чтобы исправить этот код?
Так что я меняю 'fetchall()' в 'MySQL_product()' на 'fetchone()' когда я выполняю ваш 'main'? –
Получение одного результата за один раз будет довольно медленным, оптимальный размер зависит от того, как настроен ваш сервер mysql. Попробуйте 256 в качестве отправной точки. – synthesizerpatel
Я не уверен, следую ли вы тому, что вы имеете в виду, можете ли вы взглянуть на отредактированный вопрос? Если я понимаю, что вы говорите, генератор не может эффективно использоваться в этой проблеме? –