Python调度程序不运行工作函数

2024-06-25 23:03:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图安排一个(工作)python函数加载市场数据,但不知何故,这个脚本在调度程序中不起作用

schedule.every(1).day.at("12:46").do(load_market_data)
while True:
    schedule.run_pending()
    time.sleep(60)

我得到一个错误“load\u market\u data()接受0个位置参数,但给了1个

当我在函数后添加括号时

schedule.every(1).day.at("12:46").do(load_market_data())
while True:
    schedule.run_pending()
    time.sleep(60)

函数返回结果,但仍返回错误“第一个参数必须可调用

我发现了类似的问题,但解决方案总是使功能(自我) 当我添加self加载市场数据(self)时,函数告诉我“加载市场数据()缺少1个必需的位置参数:'self'” 正如我之前所说的,load_market_数据函数是独立工作的 这是一段相当长的代码,所以简言之

def load_market_data():
    if today_value < (lastmonth_min+200):
        print("send email")
    else:
        print("ignore")

PS我被要求提供一个可复制的代码,这不是问题的一部分,但如果它能帮助您:

def load_market_data():

    response = requests.get("https://api.blockchain.info/charts/market-price?timespan=2years&start=2019-07-01&format=csv").text


    response = response.splitlines()

    dfMRKT = pd.DataFrame(response)
    dfMRKT.columns = ['WIP_transAMT']

    dfMRKT['Date'] = pd.DatetimeIndex(dfMRKT['WIP_transAMT'].str.split(',').str[0])  + pd.DateOffset(1)
    pd.to_datetime(dfMRKT['Date'])

    dfMRKT['Mrkt Price USD'] = dfMRKT['WIP_transAMT'].str.split(',').str[1]
    dfMRKT['Mrkt Price USD'] = pd.to_numeric(dfMRKT['Mrkt Price USD'], downcast="float")


    dfMRKT = dfMRKT[['Date','Mrkt Price USD']]
    
    today = date.today()
    last_month = today - pd.DateOffset(months=1)
    half_year = today - pd.DateOffset(month=6)
    dfMRKT_halfyear = dfMRKT[(dfMRKT['Date'] >= half_year)]
    dfMRKT_lastmonth = dfMRKT[(dfMRKT['Date'] >= last_month)]
    lastmonth_min = dfMRKT_lastmonth.min()
    lastmonth_min = lastmonth_min['Mrkt Price USD']
    halfyear_min = dfMRKT_halfyear.min()
    halfyear_min = halfyear_min['Mrkt Price USD']
    today_value = dfMRKT_lastmonth.iloc[[-1]]
    today_value = today_value['Mrkt Price USD']
    today_value = float(today_value)
   
    
    if today_value < (lastmonth_min+200):
        print("send email")
    else:
        print("ignore")

Tags: 函数datatodaydatevalueloadminmarket
1条回答
网友
1楼 · 发布于 2024-06-25 23:03:27

我不确定4个月后你现在是否会收到,但我在遇到同样的问题后找到了解决办法(我相信)。实际上,您一直在测试代码并提交它。它已经在运行,“while True”仍在运行。当你试图通过给它相同的时间表来调整某件事情时,它会崩溃!您必须打开python控制台的一个新实例并尝试重新运行它。这对我很管用。然而,我不知道它为什么会导致这种错误

相关问题 更多 >