【发布时间】:2018-06-26 14:18:59
【问题描述】:
我想构建一个仪表板,其中大部分内容(标题、图表等)都依赖于用户的主要输入。
因此,我想创建许多回调,以便输出取决于用户输入。
但这似乎会导致很多错误。当前一个是:“'Response' 类型的对象不是 JSON 可序列化的” 但更一般地说,我也在寻找我的代码的一些输入。
################## APP LAYOUT ##################
app.layout = html.Div(
#style={'backgroundColor': colors['background']},
children=[
html.H1('Dashboard for Visualisation',
style={
'textAlign': 'center',
'color': colors['text_black']
}),
# html.H3('Choose Analysis',
# style={
# 'textAlign': 'center',
# 'color': colors['text_black']
# }),
html.Div([
dcc.Dropdown(
id='main_dropdown',
options=[
{'label':'PCA', 'value':'PCA'},
{'label':'t-SNE', 'value':'t-SNE'}
]
)],
style={'width': '28%',
'display': 'inline-block',
'textAlign': 'center'}
),
html.Div(id='action_header'),
html.Div(id='action'),
html.Div(id='sub_action'),
html.Div(id='output_graph'),
dcc.Slider(
id='slider',
min=0,
max=55,
step=None,
value=20,
marks={
5:'5',
10:'10',
15:'15',
20:'20',
25:'25',
30:'30',
35:'35',
40:'40',
45:'45',
50:'50'
},
updatemode='drag'
)
#html.Div(id='slider_div')
])
################## CALLBACKS ##################
@app.callback(
Output(component_id='action_header', component_property='children'),
[Input(component_id='main_dropdown', component_property='value')])
def update_action_header(input):
if(input == 't-SNE'):
return html.H3("Pick labels to identify clusters",
id='action_header')
@app.callback(
Output(component_id='action', component_property='children'),
[Input(component_id='main_dropdown', component_property='value')])
def update_action_options(input):
if(input == 't-SNE'):
return dcc.Dropdown(id='gene-Dropdown',
options=[{'label': s, 'value': s}
for s in temp.keys()],
value=['IDH1','SomeGene1','SomeGene2'],
multi=True
)
@app.callback(
Output(component_id='sub_action', component_property='children'),
[Input(component_id='main_dropdown', component_property='value')])
def update_sub_action_options(input):
if (input == 't-SNE'):
return [
html.Label('Dimensions in plot'),
dcc.RadioItems(
options=[
{'label': '2D', 'value': '2'},
{'label': '3D', 'value': '3'},
],
value='2'
)
]
@app.callback(
Output(component_id='output_graph', component_property='children'),
[Input(component_id='slider', component_property='value')])
def update_graph(input): # Pull det correct dataframe
# Return graph
return dcc.Graph(
id='tsne_perplexity_plot',
figure={
'data': [
go.Scatter(
{'x': dict['perp' + str(input)]['x'],
'y': dict['perp' + str(input)]['y'],
'mode': 'markers',
'opacity': 0.7,
'marker' : {
'size': 15,
'line': {'width': 0.5, 'color': 'white'}
}
}
)
],
'layout': {
'title': "Perplexity: " + str(input),
# 'plot_bgcolor': colors['background'],
#'paper_bgcolor': colors['background'],
'font': {
'color': colors['text']
},
}
}
)
非常感谢!我真的被困住了。
注意:错误发生在我第一次尝试使用下拉菜单时 完整回溯:
* Running on http://127.0.0.1:8050/ (Press CTRL+C to quit)
127.0.0.1 - - [26/Jun/2018 14:55:55] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [26/Jun/2018 14:55:56] "GET /_dash-layout HTTP/1.1" 200 -
127.0.0.1 - - [26/Jun/2018 14:55:56] "GET /_dash-dependencies HTTP/1.1" 200 -
[2018-06-26 14:55:56,845] ERROR in app: Exception on /_dash-update-component [POST]
Traceback (most recent call last):
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1598, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/dash/dash.py", line 558, in dispatch
return self.callback_map[target_id]['callback'](*args)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/dash/dash.py", line 526, in add_context
cls=plotly.utils.PlotlyJSONEncoder),
File "/Users/kimrants/anaconda3/lib/python3.6/json/__init__.py", line 238, in dumps
**kw).encode(obj)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/plotly/utils.py", line 161, in encode
encoded_o = super(PlotlyJSONEncoder, self).encode(o)
File "/Users/kimrants/anaconda3/lib/python3.6/json/encoder.py", line 199, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/Users/kimrants/anaconda3/lib/python3.6/json/encoder.py", line 257, in iterencode
return _iterencode(o, 0)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/plotly/utils.py", line 229, in default
return _json.JSONEncoder.default(self, obj)
File "/Users/kimrants/anaconda3/lib/python3.6/json/encoder.py", line 180, in default
o.__class__.__name__)
TypeError: Object of type 'Response' is not JSON serializable
127.0.0.1 - - [26/Jun/2018 14:55:56] "POST /_dash-update-component HTTP/1.1" 500 -
[2018-06-26 14:55:56,859] ERROR in app: Exception on /_dash-update-component [POST]
Traceback (most recent call last):
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1598, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/dash/dash.py", line 558, in dispatch
return self.callback_map[target_id]['callback'](*args)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/dash/dash.py", line 515, in add_context
output_value = func(*args, **kwargs)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/dash/dash.py", line 526, in add_context
cls=plotly.utils.PlotlyJSONEncoder),
File "/Users/kimrants/anaconda3/lib/python3.6/json/__init__.py", line 238, in dumps
**kw).encode(obj)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/plotly/utils.py", line 161, in encode
encoded_o = super(PlotlyJSONEncoder, self).encode(o)
File "/Users/kimrants/anaconda3/lib/python3.6/json/encoder.py", line 199, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/Users/kimrants/anaconda3/lib/python3.6/json/encoder.py", line 257, in iterencode
return _iterencode(o, 0)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/plotly/utils.py", line 229, in default
return _json.JSONEncoder.default(self, obj)
File "/Users/kimrants/anaconda3/lib/python3.6/json/encoder.py", line 180, in default
o.__class__.__name__)
TypeError: Object of type 'Response' is not JSON serializable
127.0.0.1 - - [26/Jun/2018 14:55:56] "POST /_dash-update-component HTTP/1.1" 500 -
[2018-06-26 14:55:56,863] ERROR in app: Exception on /_dash-update-component [POST]
Traceback (most recent call last):
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1598, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/dash/dash.py", line 558, in dispatch
return self.callback_map[target_id]['callback'](*args)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/dash/dash.py", line 515, in add_context
output_value = func(*args, **kwargs)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/dash/dash.py", line 515, in add_context
output_value = func(*args, **kwargs)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/dash/dash.py", line 526, in add_context
cls=plotly.utils.PlotlyJSONEncoder),
File "/Users/kimrants/anaconda3/lib/python3.6/json/__init__.py", line 238, in dumps
**kw).encode(obj)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/plotly/utils.py", line 161, in encode
encoded_o = super(PlotlyJSONEncoder, self).encode(o)
File "/Users/kimrants/anaconda3/lib/python3.6/json/encoder.py", line 199, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/Users/kimrants/anaconda3/lib/python3.6/json/encoder.py", line 257, in iterencode
return _iterencode(o, 0)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/plotly/utils.py", line 229, in default
return _json.JSONEncoder.default(self, obj)
File "/Users/kimrants/anaconda3/lib/python3.6/json/encoder.py", line 180, in default
o.__class__.__name__)
TypeError: Object of type 'Response' is not JSON serializable
127.0.0.1 - - [26/Jun/2018 14:55:56] "POST /_dash-update-component HTTP/1.1" 500 -
127.0.0.1 - - [26/Jun/2018 14:55:56] "POST /_dash-update-component HTTP/1.1" 200 -
127.0.0.1 - - [26/Jun/2018 14:55:57] "GET /favicon.ico HTTP/1.1" 200 -
[2018-06-26 14:55:58,329] ERROR in app: Exception on /_dash-update-component [POST]
Traceback (most recent call last):
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1598, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/dash/dash.py", line 558, in dispatch
return self.callback_map[target_id]['callback'](*args)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/dash/dash.py", line 526, in add_context
cls=plotly.utils.PlotlyJSONEncoder),
File "/Users/kimrants/anaconda3/lib/python3.6/json/__init__.py", line 238, in dumps
**kw).encode(obj)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/plotly/utils.py", line 161, in encode
encoded_o = super(PlotlyJSONEncoder, self).encode(o)
File "/Users/kimrants/anaconda3/lib/python3.6/json/encoder.py", line 199, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/Users/kimrants/anaconda3/lib/python3.6/json/encoder.py", line 257, in iterencode
return _iterencode(o, 0)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/plotly/utils.py", line 229, in default
return _json.JSONEncoder.default(self, obj)
File "/Users/kimrants/anaconda3/lib/python3.6/json/encoder.py", line 180, in default
o.__class__.__name__)
TypeError: Object of type 'Response' is not JSON serializable
127.0.0.1 - - [26/Jun/2018 14:55:58] "POST /_dash-update-component HTTP/1.1" 500 -
[2018-06-26 14:55:58,334] ERROR in app: Exception on /_dash-update-component [POST]
Traceback (most recent call last):
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1598, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/dash/dash.py", line 558, in dispatch
return self.callback_map[target_id]['callback'](*args)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/dash/dash.py", line 515, in add_context
output_value = func(*args, **kwargs)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/dash/dash.py", line 526, in add_context
cls=plotly.utils.PlotlyJSONEncoder),
File "/Users/kimrants/anaconda3/lib/python3.6/json/__init__.py", line 238, in dumps
**kw).encode(obj)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/plotly/utils.py", line 161, in encode
encoded_o = super(PlotlyJSONEncoder, self).encode(o)
File "/Users/kimrants/anaconda3/lib/python3.6/json/encoder.py", line 199, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/Users/kimrants/anaconda3/lib/python3.6/json/encoder.py", line 257, in iterencode
return _iterencode(o, 0)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/plotly/utils.py", line 229, in default
return _json.JSONEncoder.default(self, obj)
File "/Users/kimrants/anaconda3/lib/python3.6/json/encoder.py", line 180, in default
o.__class__.__name__)
TypeError: Object of type 'Response' is not JSON serializable
127.0.0.1 - - [26/Jun/2018 14:55:58] "POST /_dash-update-component HTTP/1.1" 500 -
[2018-06-26 14:55:58,351] ERROR in app: Exception on /_dash-update-component [POST]
Traceback (most recent call last):
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1598, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/dash/dash.py", line 558, in dispatch
return self.callback_map[target_id]['callback'](*args)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/dash/dash.py", line 515, in add_context
output_value = func(*args, **kwargs)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/dash/dash.py", line 515, in add_context
output_value = func(*args, **kwargs)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/dash/dash.py", line 526, in add_context
cls=plotly.utils.PlotlyJSONEncoder),
File "/Users/kimrants/anaconda3/lib/python3.6/json/__init__.py", line 238, in dumps
**kw).encode(obj)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/plotly/utils.py", line 161, in encode
encoded_o = super(PlotlyJSONEncoder, self).encode(o)
File "/Users/kimrants/anaconda3/lib/python3.6/json/encoder.py", line 199, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/Users/kimrants/anaconda3/lib/python3.6/json/encoder.py", line 257, in iterencode
return _iterencode(o, 0)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/plotly/utils.py", line 229, in default
return _json.JSONEncoder.default(self, obj)
File "/Users/kimrants/anaconda3/lib/python3.6/json/encoder.py", line 180, in default
o.__class__.__name__)
TypeError: Object of type 'Response' is not JSON serializable
127.0.0.1 - - [26/Jun/2018 14:55:58] "POST /_dash-update-component HTTP/1.1" 500 -
Object of type 'Response' is not JSON serializable[2018-06-26 15:52:04,380] ERROR in app: Exception on /_dash-update-component [POST]
Traceback (most recent call last):
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1598, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/dash/dash.py", line 558, in dispatch
return self.callback_map[target_id]['callback'](*args)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/dash/dash.py", line 526, in add_context
cls=plotly.utils.PlotlyJSONEncoder),
File "/Users/kimrants/anaconda3/lib/python3.6/json/__init__.py", line 238, in dumps
**kw).encode(obj)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/plotly/utils.py", line 161, in encode
encoded_o = super(PlotlyJSONEncoder, self).encode(o)
File "/Users/kimrants/anaconda3/lib/python3.6/json/encoder.py", line 199, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/Users/kimrants/anaconda3/lib/python3.6/json/encoder.py", line 257, in iterencode
return _iterencode(o, 0)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/plotly/utils.py", line 229, in default
return _json.JSONEncoder.default(self, obj)
File "/Users/kimrants/anaconda3/lib/python3.6/json/encoder.py", line 180, in default
o.__class__.__name__)
TypeError: Object of type 'Response' is not JSON serializable
127.0.0.1 - - [26/Jun/2018 15:52:04] "POST /_dash-update-component HTTP/1.1" 500 -
[2018-06-26 15:52:04,392] ERROR in app: Exception on /_dash-update-component [POST]
Traceback (most recent call last):
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1598, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/dash/dash.py", line 558, in dispatch
return self.callback_map[target_id]['callback'](*args)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/dash/dash.py", line 515, in add_context
output_value = func(*args, **kwargs)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/dash/dash.py", line 526, in add_context
cls=plotly.utils.PlotlyJSONEncoder),
File "/Users/kimrants/anaconda3/lib/python3.6/json/__init__.py", line 238, in dumps
**kw).encode(obj)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/plotly/utils.py", line 161, in encode
encoded_o = super(PlotlyJSONEncoder, self).encode(o)
File "/Users/kimrants/anaconda3/lib/python3.6/json/encoder.py", line 199, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/Users/kimrants/anaconda3/lib/python3.6/json/encoder.py", line 257, in iterencode
return _iterencode(o, 0)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/plotly/utils.py", line 229, in default
return _json.JSONEncoder.default(self, obj)
File "/Users/kimrants/anaconda3/lib/python3.6/json/encoder.py", line 180, in default
o.__class__.__name__)
TypeError: Object of type 'Response' is not JSON serializable
127.0.0.1 - - [26/Jun/2018 15:52:04] "POST /_dash-update-component HTTP/1.1" 500 -
[2018-06-26 15:52:04,402] ERROR in app: Exception on /_dash-update-component [POST]
Traceback (most recent call last):
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/flask/app.py", line 1598, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/dash/dash.py", line 558, in dispatch
return self.callback_map[target_id]['callback'](*args)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/dash/dash.py", line 515, in add_context
output_value = func(*args, **kwargs)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/dash/dash.py", line 515, in add_context
output_value = func(*args, **kwargs)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/dash/dash.py", line 526, in add_context
cls=plotly.utils.PlotlyJSONEncoder),
File "/Users/kimrants/anaconda3/lib/python3.6/json/__init__.py", line 238, in dumps
**kw).encode(obj)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/plotly/utils.py", line 161, in encode
encoded_o = super(PlotlyJSONEncoder, self).encode(o)
File "/Users/kimrants/anaconda3/lib/python3.6/json/encoder.py", line 199, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/Users/kimrants/anaconda3/lib/python3.6/json/encoder.py", line 257, in iterencode
return _iterencode(o, 0)
File "/Users/kimrants/anaconda3/lib/python3.6/site-packages/plotly/utils.py", line 229, in default
return _json.JSONEncoder.default(self, obj)
File "/Users/kimrants/anaconda3/lib/python3.6/json/encoder.py", line 180, in default
o.__class__.__name__)
TypeError: Object of type 'Response' is not JSON serializable
127.0.0.1 - - [26/Jun/2018 15:52:04] "POST /_dash-update-component HTTP/1.1" 500 -
【问题讨论】:
-
您是否提供了所有代码?
Response是 Flask 对象,所以可能在某处有jsonify或者来自 Flask 的另一个方法,它返回Response -
@YaroslavSurzhikov 我做了.. 剩下的只是导入和 app = dash.Dash() 以及一些数据下载。
-
能否提供错误回溯?
-
是的。 @AlexK。往上看。谢谢:)
-
@AlexK。我把它添加到问题中,因为它太长了
标签: python plotly plotly-dash