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