2013-02-27 20 views
1

說我要在瓶創建以下JSON文檔:瓶jsonify:主要的出發與數字

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

我不能只是叫return jsonify(**kwargs),因爲Python禁止變量命名開始與多家,像1

是否有可能用Flask的jsonify創建這樣一個JSON文檔?如果不是,我的解決方法是什麼?

澄清:我想創建一個JSON文檔,其中包含由IDS索引類型的字典,並且標識具有的24個十六進制值(ObjectId從MongoDB的)的形式。這意味着大部分時間id將以一個數字開頭。

+1

變通方法,爲什麼你輸出1?你想與jsonobject jsonarray呢? – 2013-02-27 08:07:59

回答

3

由於flask.jsonify採用相同的參數Python的dict,你可以給它一個dict作爲參數,讓它理清休息:

@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" 
    } 
} 
4

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

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

是的,你不能手動指定名爲1個別關鍵字參數...但你可以通過通過**關鍵字擴展名爲運營商一個1關鍵字參數。