Python';dict';对象不可调用?

Python';dict';对象不可调用?,python,flask,Python,Flask,我在Python2.7上使用Flask,我想返回一个值作为json值,我试着这样做 user_id = 100 return_id = {} return_id['user'] = user_id return return_id 但是我得到了以下错误 这是完整的回溯 127.0.0.1---[03/Oct/2016 15:04:16]“发布/添加新患者HTTP/1.1”500- 127.0.0.1---[03/Oct/2016 15:04:30]“选项/添加

我在Python2.7上使用Flask,我想返回一个值作为json值,我试着这样做

    user_id = 100
    return_id = {}
    return_id['user'] = user_id

    return return_id
但是我得到了以下错误

这是完整的回溯

127.0.0.1---[03/Oct/2016 15:04:16]“发布/添加新患者HTTP/1.1”500- 127.0.0.1---[03/Oct/2016 15:04:30]“选项/添加新患者HTTP/1.1”200-[2016-10-03 15:04:30199]应用程序错误:异常 /添加新患者[POST]回溯(最近一次呼叫最后一次):文件 “/mnt/663E60F33E60BE25/Users/acer/Documents/code/thalback/venv/local/lib/python2.7/site packages/flask/app.py”, 第1988行,在wsgi_应用程序中 response=self.full\u dispatch\u request()文件“/mnt/663E60F33E60BE25/Users/acer/Documents/code/thalback/venv/local/lib/python2.7/site packages/flask/app.py”, 第1642行,完全发送请求 response=self.make_response(rv)文件“/mnt/663E60F33E60BE25/Users/acer/Documents/code/thalback/venv/local/lib/python2.7/site packages/flask/app.py”, 第1746行,在make_响应中 rv=self.response\u class.force\u type(rv,request.environ)文件“/mnt/663E60F33E60BE25/Users/acer/Documents/code/thalback/venv/local/lib/python2.7/site packages/werkzeug/wrappers.py”, 第847行,有效类型 response=BaseResponse(*\u run\u wsgi\u app(response,environ))文件“/mnt/663E60F33E60BE25/Users/acer/Documents/code/thalback/venv/local/lib/python2.7/site packages/werkzeug/test.py”, 第871行,在run_wsgi_应用程序中 app_rv=app(环境,启动响应)类型错误:“dict”对象不可调用

我在Python2.7上使用Flask,我想返回一个值作为json值

您没有返回JSON字符串

您正在返回一个python对象。当Flask看到python对象时,它会尝试调用它。当您返回字典时,它假定它是可调用的,并尝试调用它

您需要做的是:

import json

def your_function(..):
    ...
    return json.dumps(return_id)

PS:@bereal在回答中正确指出,上述方法不会在响应中添加
内容类型:application/json
标题。您可能希望使用
jsonify(…)
,如他的答案所示。

虽然可以使用
json.dumps从烧瓶处理程序返回字符串,但首选的方法是使用,它添加正确的
内容类型
并接受各种参数,例如,您可以调用:

return jsonify(user=100)

那代码没有问题。你能给你的问题补充一些细节吗?我试过你的代码,它工作得很好。您的代码中还有其他地方可以调用字典吗?如果是ajax调用,请执行json.dumps()。您正在尝试调用字典,例如
some_dict()
,但是如果不看到导致此错误的代码,就不可能更具体,最好是一个。您还应该发布完整的错误消息,从
回溯
行开始。@PM2Ring添加了完整的错误hi当我尝试运行正确的代码时,它不返回任何输出,
return jsonify(user=user_id)1
它不返回任何内容。但是
returnjsonify(user='text')
返回value@rksh我认为您的推荐中的尾随
1
是一个输入错误?对不起,是的,输入错误,已修复且有效,谢谢:)