如何检查(计数)返回的数据?

How to check (count) are returned data?

我在 Peewee 中得到了这个查询:

return c = Products.get(Products.sku == article).get()

如何检查是否有returns数据?

我试过了:

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()

您可以使用 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

你的代码各种错误。

首先,这里不需要第二次调用"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