有什么方法可以从 web2py 返回一个 JSON 列表吗?
当我点击以 .json
结尾的路线时,web2py 会将字典转换为有效的 JSON。然而,如果返回值是一个列表,它的行为会出乎意料
return ["test", "test"]
显示
testtest
和
return [dict(test="test"), dict(test="test")]
完全破坏了它(chrome 提示 ERR_INVALID_CHUNKED_ENCODING)。预期行为显然分别是以下有效的 JSON 字符串:
["test", "test"]
和
[{"test":"test"}, {"test":"test"}]
最佳答案
如果您想返回 JSON 响应,您的函数必须返回 JSON 或触发执行将生成 JSON 的 View 。在 web2py 中,仅当 Controller 函数返回字典时才会执行 View ,因此您的函数不会导致 View 被执行(因为它不返回字典)。如果您的函数确实返回字典,您仍然需要定义 .json
View ,或者通过 response.generic_patterns< 显式启用
(尽管 generic.json
View generic.json
实际上并不适合您的情况,因为它将函数返回的整个字典转换为 JSON - 所以您不能使用它仅输出列表) .
最简单的解决方案就是直接输出 JSON:
import json
...
return json.dumps(['test', 'test'])
或者更简单:
return response.json(['test', 'test'])
关于python - 从 web2py 返回 JSON 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40430152/