使用Dash Python获取错误--传递到ID为的图形中的参数'figure'无效;“图形”;。应为'object'。提供了类型为`的数组`

使用Dash Python获取错误--传递到ID为的图形中的参数'figure'无效;“图形”;。应为'object'。提供了类型为`的数组`,python,plotly,plotly-dash,Python,Plotly,Plotly Dash,我已经检查了与我所面临的错误相关的其他类似问题。我似乎不明白为什么我总是犯这样的错误: Invalid argument `figure` passed into Graph with ID "graph". Expected `object`. Was supplied type `array`. Value provided: [ {}, {} ] 这是我要更新的图形的以下代码。本质上,有一个包含名称列表的下拉列表,图形应该更新为新图形,并包含与所选下拉值相

我已经检查了与我所面临的错误相关的其他类似问题。我似乎不明白为什么我总是犯这样的错误:

Invalid argument `figure` passed into Graph with ID "graph".
Expected `object`.
Was supplied type `array`.
Value provided: 
[
  {},
  {}
]

这是我要更新的图形的以下代码。本质上,有一个包含名称列表的下拉列表,图形应该更新为新图形,并包含与所选下拉值相关的主题


#仪表板的主要部件
BODY=dbc.Container(
[
dcc.下拉列表(
id='xaxis-column',
选项=[{'label':i,'value':i}
对于排序中的i(用户列表['displayName'].unique())],
),
数据库卡(dcc.Graph(id=“Graph”),
],className=“mt-12”)
@app.callback(
输出('图形','图形'),
[输入('xaxis-column','value')]
)
def update_图形(xaxis_列_名称):
打印(xaxis\u列\u名称)
df=pd.json_规范化(数据帧['user'])
df['parsedMessage']=dataframe['parsedMessage']
df['timestamp']=数据帧['timestamp']
df\u one\u user=df['displayName']==xaxis\u column\u name
dff=df[df\u一个用户]
消息=列表(
dff[“parsedMessage”].dropna().values)
如果len(消息)<1:
返回{},{}
text=”“.加入(列表(消息))
停止单词=['will','reply','think','http',
“https”、“回复中”、“美国”、“美国”、“现在”]+列表(STOPWORDS)
wc=WordCloud(stopwords=stop\u words,max\u words=25,max\u font\u size=80)
wc.generate(文本)
单词列表、频率列表、字体大小列表、位置列表、方向列表、颜色列表=[
], [], [], [], [], []
对于wc.layout_399;中的(字、频率)、字体大小、位置、方向、颜色:
word\u列表。追加(word)
频率列表。附加(频率)
单词列表顶部=单词列表[:10]
频率列表顶部=频率列表[:10]
word_df=pd.DataFrame(
{'word\u list':word\u list\u top,
“频率列表”:频率列表顶部,
})
#打印(word_df)
图=px.bar(单词测向,x='单词列表',y='频率列表')
返回图
如果我不进行回调,只是为
xaxis\u column\u name
硬编码一个值,那么它就可以工作了

这是我的应用程序布局:

app.layout=html.Div(children=[NAVBAR,html.Br(className=“my-2”),BODY])

我相信你的问题在于
返回{},{}
。你应该在这里只返回一个dict。

我相信你的问题出在
return{},{}
。您应该在这里只返回一个dict。谢谢@DanielR,它起了作用。如果你想评论这个答案,我可以把它标记为正确的解决方案。好的,我会这么做。