我在Peewee得到了这个查询:
return c = Products.get(Products.sku == article).get()
如何检查它是否返回数据?
我试过了:
if c.count() > 0:
if len(c) > 0
它对我不起作用
这是完整的代码:
try:
r = self.isProductExist(row['sku'])
## if (r.count() == 0):
except peewee.DoesNotExist:
# Insert product
def isProductExist(self, article):
return Products.get(Products.sku == article).get()
答案 0 :(得分:0)
你的代码有各种各样的错误。
首先,这里不需要第二次调用“get()”:
return c = Products.get(Products.sku == article).get()
其次,你正在返回一个没有意义的作业(?)。改为:
return Products.get(Products.sku == article)
如果产品存在,则会退回。如果没有,将引发DoesNotExist异常,从而无需在任何地方调用“count()”。
即使找不到产品,也要使代码正常工作:
try:
return Products.get(Products.sku == article)
except Products.DoesNotExist:
# Product was not found.
return
答案 1 :(得分:-1)
您可以使用count()
。
这是一个有效的代码:
import peewee
from peewee import *
db = SqliteDatabase('/tmp/a.db')
class Products(Model):
sku = CharField()
class Meta:
database = db
db.connect()
db.drop_tables(models=[Products], safe=True)
db.create_tables([Products])
count = Products.select().count()
print(count) #=> 0
if not count:
Products.create(sku="abc")
print(Products.select().count()) #=> 1
print(peewee.__version__) #=> 3.0.18