1

假设我想在 Flask 中创建以下 JSON 文档:

{"1": {"name": "Tom"}}

我不能只调用return jsonify(**kwargs),因为 Python 禁止命名以数字开头的变量,例如1.

是否可以使用 Flask 创建这样的 JSON 文档jsonify?如果没有,我的解决方法是什么?

澄清:我想创建一个 JSON 文档,其中包含由 ids 索引的 dicts,并且 ids 具有 24 个十六进制值的形式(来自 MongoDB的ObjectId )。这意味着大多数时候 id 将以数字开头。

4

2 回答 2

4

方便,您可以使用... **kwargs

>>> def echo(**kwargs):
...     print kwargs
...
>>> echo(**{"1":{"name": "Tom"}})
{'1': {'name': 'Tom'}}

是的,您不能手动指定名为1... 的单个关键字参数,但您可以传递1通过**关键字扩展运算符命名的关键字参数。

于 2013-02-27T08:07:57.833 回答
3

由于flask.jsonify采用与 Python 相同的参数dict,因此您可以将其 adict作为参数并让它整理其余部分:

@app.route('/')
def hello_world():
    # note key is an int, not just a string with leading digits
    # in your case this could be a mongodb object
    return jsonify({1: {'name': 'bob'}})

回报:

{
  "1": {
    "name": "bob"
  }
}
于 2013-02-27T08:17:29.920 回答