- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想构建一个仪表板,其中大部分内容(标题、图表等)都取决于用户的主要输入。
因此,我想创建许多回调,以便输出取决于用户输入。
但这似乎会导致很多错误。当前的是:“'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 -
最佳答案
您没有显示您的数据是什么样子,您的代码片段没有您调用的所有变量,并且存在一些语法错误。让我们开始吧。
Flask 正在后台使用,但您无需担心使用 flask
或任何其他类似模块的 Requests
。您只是传递 html 元素,而不是像列表那样可序列化的东西。在所有回调中,如果您要将对象发送到 div
的 children
属性,则它需要在列表中。例如html.H3('text here')
==> [html.H3('text here')]
.
正如我之前评论的那样:
{'x': dict['perp' + str(input)]['x']
, doesn't make sense. dict is a type function so it needs parenthesis( )
not brackets[ ]
. Also,'perp' + str(input)
is not a key/value pair sodict( )
will still throw an error
如果您保存了一个名为 dict
的变量,请不要那样做。这是一个函数,您不想覆盖内置函数的名称。
你给两个元素相同的 ID。这会导致错误。您有 html.Div(id='action_header')
和 html.H3("Pick labels to identify clusters", id='action_header')
。这将创建一个会破坏您的应用程序的循环。
根据您在上面提供的内容,我能够将这段代码组合在一起并发挥作用。它应该接近你所需要的。
import dash
import plotly.graph_objs as go
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
# I added these to make your code work. change to your variables.
app = dash.Dash()
server = app.server
temp = {'IDH1':1,'SomeGene1':2,'SomeGene2':3, "option3":4, "another":5}
colors = {'text':"#666", 'text_black':'#000000'}
################## APP LAYOUT ##################
app.layout = html.Div(
children=[
html.H1('Dashboard for Visualisation',
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'
)
])
################## 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")]
@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()], # what is temp? not defined so I made something up.
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': [1, 2, 3], # put random in because I didn't
'y': [4, 8, 1], # know what your data looks like
'mode': 'markers',
'opacity': 0.7,
'marker' : {
'size': 15,
'line': {'width': 0.5, 'color': 'white'}
}
}
)
],
'layout': {
'title': "Perplexity: "+str(input),
'font': {
'color': colors['text']
},
}
}
)]
if __name__ == '__main__':
"""
If this file is ran by command line it will start the flask server
"""
app.run_server(debug = False, port = 8050) # Set debug = True when developing
如果您打算使用破折号,我建议您使用 trace = {'type':'scatter', ...}
而不是导入图形对象。这并不重要,但 Dash 很好地将所有内容包装在一起,因此您不必使用 dict()
和 { }
并使用它们的其他子 -模块。在 Python 中不对 if 语句使用括号也很常见。
# bad
if (x == 5):
# do foo
# good
if x == 5:
# do foo
阅读here风格指南。 PEP8也很受欢迎。风格指南将帮助您的代码变得更具可读性,并防止您犯愚蠢的错误。
最后,input
实际上是 python 中的一个函数,您不应该将它用作回调中的变量。请参阅 input() 的文档.您不应覆盖或使用内置函数或变量作为变量或函数的名称。它会使读者感到困惑,并可能导致您的代码出错。
关于python - 绘图和破折号 : Object of type 'Response' is not JSON serializable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51045155/
假设a是张量,那么有什么区别: 类型(a) a.类型 a.type() 我找不到区分这些的文档。 最佳答案 type 是 python 内置方法。 它将返回对象的类型。喜欢 torch.Tensor.
什么是 Type 1 的居民的例子?两者都不是 Type也不是Type的居民?在 Idris REPL 中进行探索时,我无法想出任何东西。 更准确地说,我正在寻找一些 x除了 Type产生以下结果:
我找到了一些资源,但我不确定我是否理解。 我找到的一些资源是: http://help.sap.com/saphelp_nw70/helpdata/en/fc/eb2ff3358411d1829f00
这两个函数原型(prototype)有什么区别? void apply1(double(f)(double)); void apply2(double(*f)(double)); 如果目标是将提供的函
http://play.golang.org/p/icQO_bAZNE 我正在练习使用堆进行排序,但是 prog.go:85: type bucket is not an expression
假设有一个泛型定义的方法信息对象,即一个方法信息对象,这样的方法Info.IsGenericMethodDefinition==TRUE:。也可以说它们也有一个泛型参数列表:。我可以使用以下命令获取该
在具有依赖类型的语言中,您可以使用 Type-in-Type 来简化语言并赋予它很多功能。这使得语言在逻辑上不一致,但如果您只对编程感兴趣而不对定理证明感兴趣,这可能不是问题。 在 Cayenne
根据 Nim 手册,变量类型是“静态类型”,而变量在内存中指向的实际值是“动态类型”。 它们怎么可能是不同的类型?我认为将错误的类型分配给变量将是一个错误。 最佳答案 import typetrait
假设您有以下结构和协议(protocol): struct Ticket { var items: [TicketItem] = [] } struct TicketItem { } prot
我正在处理一个 EF 问题,我发现它很难调试...以前,在我的系统中有一个表类型继承设置管理不同的用户类型 - 所有用户共有的一种根类型,以及大致基于使用该帐户的人员类型的几种不同的子类型。现在,我遇
这是我的 DBManager.swift import RealmSwift class DBManager { class func getAllDogs() -> [Dog] {
我正在尝试使用傅里叶校正图像中的曝光。这是我面临的错误 5 padded = np.log(padded + 1) #so we never have log of 0 6 g
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 9 年前。 Improve
请考虑以下设置: protocol MyProcotol { } class MyModel: MyProcotol { } enum Result { case success(value:
好吧,我将我的 python 项目编译成一个可执行文件,它在我的电脑上运行,但我将它发送给几个 friend 进行测试,他们都遇到了这个错误。我以前从未见过这样的错误。我使用 Nuitka 来编译代码
当我尝试训练我的模型时"ValueError: Type must be a sub-type of ndarray type"出现在 line x_norm=(np.power(x,2)).sum(
我尝试在另一个类中打断、计数然后加入对象。所以我构建协议(protocol): typealias DataBreaker = () -> [Double] typealias DataJoiner
我正在使用 VS 2015 更新 3、Angular 2.1.2、Typescript 2.0.6 有人可以澄清什么是 typings 与 npm @types 以及本月很难找到的任何其他文档吗? 或
我正在考虑从 VS2010 更改为 Mono,因此我通过 MoMA 运行我的程序集,看看我在转换过程中可能遇到多少困难。在生成的报告中,我发现我不断收到此错误: bool Type.op_Equali
主要问题 不太确定这是否可能,但由于我讨厌 Typescript 并且它使我的编码变得困难,我想我会问只是为了确定。 interface ISomeInterface { handler: ()
我是一名优秀的程序员,十分优秀!