2013-03-08 141 views
0

將此顯示爲JSON的最佳方式是什麼?Python列表,元組和字典到JSON?

{'foo': 'bar'} 
[1,2,3,4,5] 

我的部分解決方案:

import json 

def json_tuple(*args, **kwargs): 
    if args: 
     if kwargs: 
      return json.dumps(args), json.dumps(kwargs) 
     return json.dumps(args) 

    return json.dumps(kwargs) 

提供:

>>> json_tuple(1,2,3,4,5, **{'foo': 'bar'}) 
('[1, 2, 3, 4, 5]', '{"foo": "bar"}') 

將會把args列表中的kwargs - 例如:在args關鍵 - 是唯一的解決方案?

回答

4

如果你只是在尋找有效的JSON,你可以把這些值轉換成一個頂級陣列:

import json 

def jsonify(*args, **kwargs): 
    return json.dumps((args, kwargs)) # Tuples are faster to create 

其中產率:

'[[1, 2, 3, 4, 5], {"foo": "bar"}]' 
+0

啊,這麼簡單。謝謝 :) – 2013-03-08 08:29:21

0

我的 「醜陋」 的解決方案:

import json 

def jsonify(*args, **kwargs): 
    if args: 
     kwargs.update({'args': args}) 

    return json.dumps(kwargs) 

提供:

>>> jsonify(1,2,3,4,5, **{'foo': 'bar'}) 
'{"foo": "bar", "args": [1, 2, 3, 4, 5]}' 
+0

如果有'arg' kwarg會失敗。 – bereal 2013-03-08 08:30:03