Flask / Keras: <p>Не удалось декодировать JSON объект: Ожидается имя свойства, заключенное в двойные кавычки: строка 1 столбец 2 (символ 1) </p> - PullRequest
2 голосов
/ 26 мая 2020

Я создал простую модель Keras и внедрил ее в API с помощью Flask, к сожалению, я получаю сообщение об ошибке, показанное ниже:

C:\Users\callu\OneDrive\Documents\Keras>curl  -d "{"9","7","9","5","7","6","0","4","6","0","4","7","0","7"}" -H "Content-Type: application/json" -X POST http://localhost:5000
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>400 Bad Request</title>
<h1>Bad Request</h1>
<p>Failed to decode JSON object: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)</p>

Я попытался отключить упорядочение данных с помощью "или", но мне не повезло (я не эксперт в JSON, поэтому слежу за онлайн-уроками)

Вот команда curl:

curl  -d "{"9","7","9","5","7","6","0","4","6","0","4","7","0","7"}" -H "Content-Type: application/json" -X POST http://localhost:5000
pause

А вот код Python:

from math import expm1

import joblib

import numpy as np

from flask import Flask, jsonify, request

from tensorflow import keras

from keras.models import load_model

from keras.models import model_from_json

import pandas as pd

app = Flask(__name__)

app.config["DEBUG"] = True


json_file = open('CatModel1.json', 'r')
loaded_model_json = json_file.read()
json_file.close()
loaded_model = model_from_json(loaded_model_json)
# load weights into new model
loaded_model.load_weights("CatModel1.h5")

print("Model Loaded")

@app.route("/", methods=["POST"])

def index():

    input = request.json

    prediction = loaded_model.predict(input)

    return jsonify({"Taste": str(df)})
app.run()

1 Ответ

1 голос
/ 22 июля 2020

Вам нужно будет избежать двойных кавычек внутри вашего JSON.

Например. "{ \"9\", \"7\", \"9\", \"5\", \"7\"}"

В настоящее время отображается "{" затем 9 затем "," затем 7 затем "," et c.

Вы также можете попробовать использовать одинарная кавычка как внешняя кавычка, но YMMV, это зависит от того, как работает ваша среда.

Например. '{ "9", "7", "9", "5", "7"}'

Также, поскольку это выглядит как список чисел, кавычки могут не потребоваться вообще.

Например. '{9, 7, 9, 5, 7}'

И, наконец, поскольку это список, используйте квадратные скобки, а не фигурные. Фигурные скобки предназначены для пар "ключ-значение", например {"name": "Bob"}

[9, 7, 9, 5, 7]
.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...