TypeError: масив ([[0.46872085, 0.67374235, 1.0218339, 0.13210179, 0.5440686, 0.9140083, 0.58720225, 0.2199381]], dtype = float32) не є JSON серіалізабельним
Вищезгадана помилка була видана, коли я намагався передати список даних до model.predict (), коли я очікував відповіді у форматі json.
> 1 json_file = open('model.json','r')
> 2 loaded_model_json = json_file.read()
> 3 json_file.close()
> 4 loaded_model = model_from_json(loaded_model_json)
> 5 #load weights into new model
> 6 loaded_model.load_weights("model.h5")
> 7 loaded_model.compile(optimizer='adam', loss='mean_squared_error')
> 8 X = [[874,12450,678,0.922500,0.113569]]
> 9 d = pd.DataFrame(X)
> 10 prediction = loaded_model.predict(d)
> 11 return jsonify(prediction)
Але, на щастя, знайдено підказку, щоб вирішити помилку, яка була викинута. Серіалізація об'єктів застосовна лише для наступних перетворень. Картографування має бути таким чином об’єкт - dict array - list string - string integer - integer
Якщо ви прокрутите вгору, щоб побачити рядок номер 10 prediction = load_model.predict (d), де цей рядок коду генерував вихід типу типу масиву масиву, коли ви намагаєтеся перетворити масив у формат json, його неможливо
Нарешті, я знайшов рішення, просто перетворивши отриманий результат у список типів наступними рядками коду
prediction = load_model.predict (d)
listtype = prediction.tolist () return jsonify (listlist)
Bhoom! нарешті отримали очікуваний вихід,
json
модуля. Алеnumpy.ndarray
це не тип, якийjson
вміє поводитися. Вам або потрібно буде написати власний серіалізатор, або (простіше кажучи) просто перейтиlist(your_array)
до того, що пише json.