Python 3.x 在短划线中的回调中包含日期选择器时出错
我正在使用QuandlAPI,希望编写一个回调来更新图中显示的数据和日期范围 首先,我定义了一个函数来获取所需的数据:Python 3.x 在短划线中的回调中包含日期选择器时出错,python-3.x,plotly-dash,Python 3.x,Plotly Dash,我正在使用QuandlAPI,希望编写一个回调来更新图中显示的数据和日期范围 首先,我定义了一个函数来获取所需的数据: def indicator_select(indi='NY_GDS_TOTL_ZS',coun='WLD'): quandl.ApiConfig.api_key = key data=quandl.get(f'WWDI/{coun}_{indi}') return data 接下来,我加入了datepickerage,如下所示: html.Div([
def indicator_select(indi='NY_GDS_TOTL_ZS',coun='WLD'):
quandl.ApiConfig.api_key = key
data=quandl.get(f'WWDI/{coun}_{indi}')
return data
接下来,我加入了datepickerage
,如下所示:
html.Div([
dcc.DatePickerRange(
id='date-picker1',
min_date_allowed=datetime(1970, 1, 1),
max_date_allowed=datetime.today(),
start_date = datetime(1970, 1, 1),
end_date = datetime.today()
)
])
最后,我编写了回调函数——在包含日期组件之前,它运行良好。仅对于数据,它正在按预期更新图形
@app.callback(Output(component_id='graph1',
component_property='figure'),
[Input(component_id='country-list1',
component_property='value'),
Input(component_id='indicator-list1',
component_property='value'),
Input(component_id='date-picker1', component_property='start_date'),
Input(component_id='date-picker1', component_property='end_date')])
def update_graph(start_date,end_date,indi=indicator_options,coun=country_options):
df = indicator_select(coun, indi)
df = df.loc[start_date: end_date]
graph_content = dict(data=line_plot(df),
layout=go.Layout(
title=str(country.loc[indi, "Country"]) +
' - ' +
str(indicator.loc[coun, "INDICATOR"]),
yaxis=dict(hoverformat='.1f',
showgrid=False),
paper_bgcolor='#F7F7F7',
plot_bgcolor='#F7F7F7',
)
)
return graph_content
因此,我收到以下错误消息:
quandl.errors.quandl_error.NotFoundError:(状态404)(quandl error QECx02)您提交了错误的quandl代码。请检查您的Quandl代码,然后重试。
我很难理解为什么当我在回调中包含开始和结束日期时,它会返回此错误,而当我删除日期时,它会正常工作。问题在于输入的顺序。您将日期添加到
输入列表的末尾,但将其作为函数中的第一个参数。应该是这样的:
@app.callback(输出(component_id='graph1',
组件_property='figure'),
[输入(组件id='country-list1',
组件_property='value'),
输入(组件id='indicator-list1',
组件_property='value'),
输入(组件\u id='date-picker1',组件\u属性='start\u date'),
输入(组件\u id='date-picker1',组件\u属性='end\u date'))
def更新图表(indi=指标选项,CONN=国家选项,开始日期,结束日期):
#func的内容
谢谢!成功了。