JSONDecodeError: ожидаемое значение: строка 1, столбец 1 (символ 0) при попытке доступа к goodread api - PullRequest
0 голосов
/ 06 мая 2020
@app.route("/review/", methods=["POST", "GET"])

def review(isbn):
    uid = session["user"].id

    if request.method == "GET":

        data = db.execute("SELECT * FROM book WHERE isbn=:isbn ", {"isbn": isbn}).fetchall()

        rating = db.execute("SELECT * FROM review join book ON review.bid = book.id join users On review.uid = users.id WHERE isbn =:isbn ", {"isbn": isbn}).fetchall()

        res = requests.get("https://www.goodreads.com/book/review_counts.json", params={"key": "LZdw0fSUvZVtB5Gprc6DQ", "isbns": bnum})

        bookinfo = res.json()

        avr = bookinfo['books'][0]['average_rating']

        rvr = bookinfo['books'][0]['work_ratings_count']

        return render_template("review.html",
                               data=data, rating=rating, avr=avr, rvr=rvr)

... привет, ребята, когда я запускаю код для доступа к оценке книг и счетчику оценок из API goodreads, появляется эта ошибка. но когда я использую номер isbn вместо переменной isbn, он работает. примечание: isbn передается со страницы html ... \ Я хочу передать значение isbn через url

1 Ответ

0 голосов
/ 06 мая 2020

В app.route в качестве параметра не передается переменная. Вы напрямую используете ее в функции, расположенной ниже, вам нужно будет сделать следующее, чтобы использовать в flask. Я предполагаю, что номер isbn является целым числом

@app.route("/review/<int:isbn>", methods=["POST", "GET"])    # You need to pass the isbn in your app.route like this

def review(isbn):
    uid = session["user"].id

    if request.method == "GET":

        data = db.execute("SELECT * FROM book WHERE isbn=:isbn ", {"isbn": isbn}).fetchall()

        rating = db.execute("SELECT * FROM review join book ON review.bid = book.id join users On review.uid = users.id WHERE isbn =:isbn ", {"isbn": isbn}).fetchall()

        res = requests.get("https://www.goodreads.com/book/review_counts.json", params={"key": "LZdw0fSUvZVtB5Gprc6DQ", "isbns": bnum})

        bookinfo = res.json()

        avr = bookinfo['books'][0]['average_rating']

        rvr = bookinfo['books'][0]['work_ratings_count']

        return render_template("review.html",
                               data=data, rating=rating, avr=avr, rvr=rvr)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...