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

裏面當我這樣做在命令行 那樣json.dump(對象,F)那樣json.dump工作在命令行,而不是一個腳本

其中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

只是一種風格註釋:你可能不希望因爲['object'(HTTP使用'object'您的變量名://docs.python。 org/library/functions.html#object)是一個內置函數。 –

+0

感謝您的提示,也會改變這一點。 – jason

回答

2

我猜你的float是不是一個真正的float,但在某些方面就像它。嘗試序列化之前,將其轉換爲float

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

我現在就試試。 – jason

+0

對錢的權利!我打印出1.0的類型,結果是'numpy.float32'。再次感謝你的幫助! – jason

相關問題