0

ハイ!peewee で 2 行ごとまたは 60 行ごとに選択するにはどうすればよいですか? 例えば ​​(1st, 31st, 61st, 91st, ...) ループしてみますが、とても気持ち悪いです。ループごとにオフセットを増やします。

私は peewee.expression を試しますが、残念ながら機能しません:

TypeError: 文字列のフォーマット中にすべての引数が変換されるわけではありません

data = GreDatasDev3.select().order_by(GreDatasDev3.idGreDatasDev.desc()).where(Expression(GreDatasDev3.idGreDatasDev, '%', 60) == 0).limit(168)
deviceDatasList = []
for i in data:
   deviceDatasList.append(
            {
            "idGreDatasDev" : i.idGreDatasDev,
            "time" : str(i.time),
            "panelNumber" : i.panelNumber,
            "battmV" : i.battmV,
            "battmA" : i.battmA,
            "battW" : i.battW,
            "panemV" : i.panemV,
            "panemA" : i.panemA,
            "paneW" : i.paneW,
            "loadmV" : i.loadmV,
            "loadmA" : i.loadmA,
            "loadW" : i.loadW,
            "battStatus" : i.battStatus,
            "paneStatus" : i.paneStatus,
            "loadStatus" : i.loadStatus,
            "percent" : round(100-((13800-i.battmV)/27), 1),
            "windStatus" : i.windStatus,
            "windMax" : i.windMax,
            "windDirection" : i.windDirection,
            "rainFall" : i.rainFall,
            "humidity" : i.humidity,
            "airPressure" : i.airPressure,
            "temperature" : i.temperature
            }
            )

しかし、 .where タグがなくても機能します。最後の168行だけです。

data = GreDatasDev3.select().order_by(GreDatasDev3.idGreDatasDev.desc()).limit(168)
        deviceDatasList = []
        for i in data:
            deviceDatasList.append(
            {
            "idGreDatasDev" : i.idGreDatasDev,
            "time" : str(i.time),
            ...
            }
            )
4

1 に答える 1