亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在python中訪問APScheduler cron觸發器字段值

在python中訪問APScheduler cron觸發器字段值

呼啦一陣風 2021-07-24 18:00:09
與此問題類似,我想從 APScheduler 中提取 cron 作業觸發器的信息。但是,我需要“day_of_week”字段而不是所有內容。使用for job in scheduler.get_jobs():  for f in job.trigger.fields:    print(f.name + " " + str(f))我可以看到所有字段,例如week,hour,day_of_week,但是job.trigger.day_of_week似乎是“CronTrigger”對象的“不是屬性”。我很困惑這job.trigger是什么類型的對象以及它的字段是如何打包的。我試著閱讀了github上的代碼,但更令人費解。如何只提取一個字段day_of_week,這個觸發器類的結構如何?潛得更深我發現apscheduler.triggers.cron.fields.DayOfWeekField我可以通過索引 找到job.trigger.fields[4],這看起來非常糟糕,因為它取決于字段的“位置”。我得到的是這個 DayOfWeekField,可笑的是,我也無法從中檢索它的價值:a.get_value<bound method DayOfWeekField.get_value of DayOfWeekField('day_of_week', '1,2,3,4')>字段的結構在此處編碼,但我不知道如何處理 .dateval 的參數get_value()。最終,在希望理解這個概念之后,我想做if job-day_of_week contains monif job-day_of_week == '*'print ( job-day_of_week )我很感激任何建議/提示!
查看完整描述

1 回答

?
四季花海

TA貢獻1811條經驗 獲得超5個贊

查看代碼,您應該能夠day_of_week通過使用CronTrigger類的FIELD_NAMES屬性來獲取字段,而無需對索引進行硬編碼,例如


dow_index = CronTrigger.FIELD_NAMES.index('day_of_week')

dow = job.trigger.fields[dow_index]

獲取字段的值有點復雜,但它似乎BaseField實現了str函數,該函數應該為您提供創建字段的表達式的值作為字符串,您可以解析以找到所需的內容:


dow_value_as_string = str(dow)

if 'mon' in dow_value_as_string:

   # do something

if dow_value_as_string = "*":

   # do something else


查看完整回答
反對 回復 2021-07-28
  • 1 回答
  • 0 關注
  • 291 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號