[英]Python peewee iterate over SelectQuery
我正在嘗試使用peewee在Python的嵌套循環中遍歷一些數據庫行。 以下是我連接數據庫和定義模型的方法:
from peewee import *
from playhouse.shortcuts import *
db = MySQLDatabase("testdb", **{"host": "localhost", "user": "root", "passwd": ""})
class UserService(Model):
# a primary key of 'id' is implicitly defined
service = CharField()
class Meta:
db_table = "results"
database = db
db.connect()
unique_service_query = UserService.select(UserService.service).group_by(UserService.service)
我正在嘗試這樣的事情:
for outer_service in unique_service_query:
for inner_service in unique_service_query:
print outer_service.service,inner_service.service
這只在外環中產生了一個項目。 看起來peewee中的迭代器與標准列表對象的工作方式不同。 我在哪里/如何重置迭代器或只返回一個列表?
我嘗試了一個像你一樣的嵌套循環,並且發現外循環只經歷了一次迭代,即使查詢有多個結果。 我不知道究竟是什么導致了這個peewee查詢結果,但如果我第一次將查詢結果轉換為這樣的列表,我得到了預期的結果
list(unique_service_query)
所以你的代碼就會變成
results = list(unique_service_query)
for outer_service in results:
for inner_service in results:
print outer_service.service,inner_service.service
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.