如何在Bottle中处理JSON请求?

18 投票
2 回答
27637 浏览
提问于 2025-04-16 06:19

我需要从客户端通过Ajax传输的JSON中获取数据。基本上,我用的是这样的代码:

@route('/ajax')
def serve_ajax():
    return main.parse_request(json.dumps(dict(request.GET)))

这里的main.parse_request是一个函数,里面有一些处理JSON变量的逻辑(这是我们游戏引擎的主要程序)。

问题是,我无法正确处理JSON变量,因为在把request.GET转换成字典时,无法传递嵌套的对象和数组。而且每个值都是字符串类型,但我需要整数的地方是整数类型,其他地方是字符串类型。

或者,因为我可以获取原始的查询字符串(通过request.query_string),那么我该如何把查询字符串转换成原始的JSON对象呢?

2 个回答

21

request.json 的大小是受到 MEMFILE_MAX 的限制的。

如果请求的数据超过了 MEMFILE_MAX 的限制,还有其他方法可以处理。

json.load(request.body)
28

从瓶子(Bottle)版本0.10开始,request.json功能可以直接使用啦 :)

详细说明可以在这里找到。

撰写回答