ハイ!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),
...
}
)