2016-05-19 4 views
0

Für den folgenden Code:Serialisierung Wörterbuch von Listen nicht funktioniert "Typeerror: 0.031 ist nicht JSON serializable"

document_vectors = dict() 
for label in d2v_model.docvecs.doctags: 
    vector = [ v for v in d2v_model.docvecs[label]] 
    document_vectors[label] = list(vector) 

document_vectors_file ="../results/amazon_hierarchical_document_vectors.json" 

with open(document_vectors_file, "w") as outfile: 
    print "Writing document vectors .." 
    json.dumps(document_vectors, outfile) 

Ich erhalte:

TypeError: 0.031942371 is not JSON serializable 

es mir Debuggen zeigt, dass ich in der Tat Ich habe hier eine dict() von list() (Ich habe auch versucht, nur ein einfaches Array zu verwenden), aber es funktioniert nicht. Warum?

Antwort

0

Interessanter diese hat den Trick:

vector = [1.0*v for v in d2v_model.docvecs[label]] 

Der Debugger sagt, dass d2v_model.docvecs[label] gibt ein float32 jedoch json nicht mit ihm glücklich ist. Multiplikation mit 1.0 konvertiert es in eine float64, die plötzlich funktioniert.

Könnte verwandt sein mit Convert numpy type to python

Verwandte Themen