让我说我有一个基本的烧瓶程序...
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]
为什么第一个有效,第二个无效?
如何返回字典中的所有项目?
答案 0 :(得分:0)
不要将变量命名为list
或dict
,因为它们会隐藏内置程序。试试下面的代码。链接到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