我使用Python中生成功能練習,所以我定義的功能如下:使用發電機功能蟒蛇
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 ...
我想打印在數據庫中找到的內容。另外,MySQL_product()
中的print
語句都沒有執行。生成器的要點是,不要返回數據庫中所有行的列表,而應該逐個返回它。然後我想訪問/打印這些項目。我能做些什麼來解決這個問題?
所以做我改變'使用fetchall()''中MySQL_product()''到fetchone()'當我執行你的'main'? –
一次獲取一個結果會非常慢,最佳大小取決於您的mysql服務器如何調優。嘗試256作爲一個起點。 – synthesizerpatel
我不確定我是否遵循你的意思,你可以看看編輯過的問題嗎?如果我明白你說的話,發電機不能在這個問題中有效地使用? –