如何格式化JSON?

How to format the JSON?

我正在尝试将 json 数据从 pandas 数据帧直接输出到 dcc.store(plotly-dash 组件),这是带有 id 'intermediate-value' 的输出。所以,我做了一个字典,然后我把 JSON 扔掉了。我不断收到此错误:

Expected type: (<class 'tuple'>, <class 'list'>)
Received value of type <class 'str'>

我知道它说我正在向它传递一个字符串,而且我应该向它传递一个元组(或?)一个列表。我不确定的是如何编辑我的代码以匹配它想要的数据结构。任何人都可以提供见解,我在下面包含了我的问题功能:

@app.callback(
    [
        Output('intermediate-value', 'data')
    ],
    [
        Input("keyword-selection", "value"),
        Input("status-selection", "value")
    ]
)
def color_map(keyword_selected, status_selected):
    local_df = df_xy_coord[df_xy_coord["active"] == status_selected].copy() if status_selected != "All" else df_xy_coord

    color_index = 0
    for keyword in keyword_selected:
        local_df.loc[local_df["keyword"] == keyword, 'color'] = colors[color_index]
        color_index += 1

    color_dictionary = dict( zip( local_df.keyword, local_df.color ) )
    return( json.dumps(color_dictionary, indent = 4) )

到 return Python 中的元组(逗号是 Python 将其解析为大小为 1 的元组所必需的):

return (color_dictionary,  )

到 return Python 中的列表:

return [color_dictionary]

json.dumps 将对象(例如 dict)序列化为 JSON 格式的 str。 您可以先将 dict 序列化为 JSON 字符串,然后按照上面的示例将其 return 序列化为元组或列表。 请参阅 json.dumps here.

的文档