首页 > 解决方案 > TypeError: 'dict' 对象在使用 request.json() 时不可调用

问题描述

每次我尝试通过 request.json() 从请求中获取 JSON 时,都会发生错误“dict object is not callable”。例如,

from bottle import run, request, post

@post('/')
def test():
    data = request.json()

run(host='localhost',port=8080)

使用 curl 进行测试,

 curl -H "Content-Type: application/json" -d '{"test":"test"}' -X POST http://localhost:8080/

这是输出,

Traceback (most recent call last):
  File "C:\Users\javir\AppData\Local\Programs\Python\Python38\lib\site-packages\bottle.py", line 868, in _handle 
    return route.call(**args)
  File "C:\Users\javir\AppData\Local\Programs\Python\Python38\lib\site-packages\bottle.py", line 1748, in wrapper
    rv = callback(*a, **ka)
  File "d:/Workspace Universidad/SD-P3/test.py", line 5, in test
    data = request.json()
TypeError: 'dict' object is not callable
127.0.0.1 - - [12/May/2020 12:43:42] "POST / HTTP/1.1" 500 741

无论内容如何,​​我总是遇到同样的错误。有谁知道它可能是什么?

标签: pythonbottle

解决方案


()在 python 中,当您在变量之后包含 a 时,会发生“调用” 。TypeError: 'dict' object is not callable仅仅意味着那request.json是一个dict并且不能被调用。删除()request.json

@post('/')
def test():
    data = request.json

推荐阅读