给定对象的JSON.dump在命令行中运行,而不是在脚本内部

时间:2011-12-04 05:57:42

标签: python json

object = {'score-set': [('SomeString', 1.0)], 'n': 10, 'num-found': 1, 'start': 0}
type(object) is dict. 

当我在命令行中执行此操作时 传入json.dump(对象,F)

其中f是可写的打开文件。我完全得到了文件中的转储。

但是在这样的上下文中的程序中:

def JSONresponse(object,request,jsonIndent=None):
    r=HttpResponse(mimetype="application/json")
    callback1=request.GET["jsoncallback"] if "jsoncallback" in request.GET else None
    callback2=request.GET["callback"] if "callback" in request.GET else None
    callback = callback1 or callback2
    if callback and len(callback) > 1:
        r.write(callback + "(")
        json.dump(object,r,indent=jsonIndent)
        r.write(");")
    else:
        json.dump(object,r,indent=jsonIndent)
        r.write("\n")
    return r

我在json.dump行上遇到以下异常。

Exception Value: 1.0 is not JSON serializable

任何提示都会非常感激,

非常感谢,

1 个答案:

答案 0 :(得分:3)

我猜你的float实际上不是float,但在某些方面表现得与此类似。在序列化之前尝试将其转换为float

object['score-set'] = [(a, float(b)) for (a, b) in object['score-set']]