Flask-为什么我可以返回列表,但不能返回字典?

时间:2018-12-19 20:17:09

标签: python flask

让我说我有一个基本的烧瓶程序...

lis = [1, 2, 3, 4]
dict1 = defaultdict(list)
dict1["key"].append("Hello")

@app.route("/list/<string:index>")
def l(index):
    return lis[index]

@app.route("/dictionary/<string:key>")
def d(key):
    return dict1[key]

为什么第一个有效,第二个无效?

如何返回字典中的所有项目?

2 个答案:

答案 0 :(得分:0)

不要将变量命名为listdict,因为它们会隐藏内置程序。试试下面的代码。链接到docs

lis = [1, 2, 3, 4]
dict1 = defaultdict(list)
dict1['key'].append("Hello")

如果要获取dict1的所有项

dict1.items()

它很好地说明了defaultdict的工作原理 How does collections.defaultdict work?

答案 1 :(得分:0)

问题在于flask需要在响应中使用简单的字符串或可调用对象,因为它需要传递值。字典不是可调用的对象,您必须将其转换为可以使用json.dumps并设置适当的Content-type标头(在这种情况下为'application/json')或仅使用{ {1}}为您完成了艰苦的工作。 Jsonify Docs

jsonify