Я создаю задний конец приложения tensorflow и в основном после моей классификации Я хочу вернуть результаты клиенту в формате JSON.Python словарь для json.dumps флажок не работает не может отправить ответ
Таким образом, после моей классификации я получаю два значения а "name"
и "%"
импорт
import json
from flask import Flask, jsonify, request, Response #import objects from the Flask model
app = Flask(__name__) #define app using Flask
функция вызывается апите вызов
В основном это возвращает этот словарь в переменной Items
{'moulin de la galette renoir': 0.0080302889, 'les demoiselles d avignon picassso': 0.7823543, 'starry night over the rhone van gogh': 0.01457829, 'wheatfields with crows van gogh': 0.049212866, 'guernica picassso': 0.14582427}
classify()
do some code here ...
# Sort to show labels of first prediction in order of confidence
top_k = predictions[0].argsort()[-len(predictions[0]):][::-1]
#items within object
items = {}
for node_id in top_k:
human_string = label_lines[node_id]
score = predictions[0][node_id]
#stores human string and score in item
items[human_string] = score
return items
апи
@app.route('/inception', methods=['POST'])
def inception():
if 'file' not in request.files:
return jsonify({'message' : 'failed'})
file = request.files['file']
output = classify(file)
#print just to see the format of the output
print(output)
return Response(json.dumps(output), mimetype='application/json')
Это должно опубликовать назад элементы в виде JSON, но это не так.
Если из класса() я жестко кодирую то же значение, что и выход, равный ему.
так:
return {'moulin de la galette renoir': 0.0080302889, 'les demoiselles d avignon picassso': 0.7823543, 'starry night over the rhone van gogh': 0.01457829, 'wheatfields with crows van gogh': 0.049212866, 'guernica picassso': 0.14582427}
Когда вы говорите: «Это должно возвращать элементы в json-форме, но это не так». - Что происходит вместо этого? –
См. Вопрос Мэтта. Кажется, это должно сработать. Кроме того, вы можете использовать флагов 'jsonify', который вы уже включили, чтобы вернуть результат. Для этого нужно также установить заголовок. – jwang
@MattHealy Я получаю ошибку 500 в почтальоне, когда я делаю запрос по почте. – PeachyDinosaur