python - 从 web2py 返回 JSON 列表

标签 python json list web2py

有什么方法可以从 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/

相关文章:

python - 从Python中的多个字典返回结果

javascript - 如何使用 JSON 数据创建 CanvasJS 图表?

r - 列表中最长元素的长度

python - 函数和列表

Jquery - 根据组合框选择将项目从一个列表移动到另一个列表

python - 使用列车测试分割的维度问题

python - 无法从 django rest-framework 中的其他序列化程序导入序列化程序?

python - Dask:在列上删除 NA?

python - 快速 Python/Numpy 频率严重性分布模拟

c++ - 检查路径是否存在于 boost 属性树中