【问题标题】:json.decoder.JSONDecodeError while using Goodreads API使用 Goodreads API 时出现 json.decoder.JSONDecodeError
【发布时间】:2020-05-16 14:56:03
【问题描述】:

代码是:

@app.route("/login/search/<int:book_id>",methods=["POST","GET"])
def book(book_id):
 desc=db.execute("SELECT * from books where id = :id",{"id":book_id}).fetchone()
 isbns=desc.isbn
 reviews=db.execute("SELECT review from reviews where books_id = :id",{"id":book_id}).fetchall()
 res = requests.get("https://www.goodreads.com/book/review_counts.json", params={"key": "b1J7lLvE", "isbns":"isbns"})
 data = res.json()
 newDict={}
 for item in data['books']:
  newDict.update(item)
 data['books']=newDict
 avg_rating=data['books']['average_rating']
 review_count=data['books']['work_reviews_count']
 return render_template('book.html',desc=desc,reviews=reviews,rate=avg_rating,count=review_count)

错误说:

json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

谁能弄清楚为什么会这样? .提前致谢

【问题讨论】:

    标签: json python-3.x api flask jsondecoder


    【解决方案1】:

    调用时在代码中

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

    你的输出是:

    b'Invalid API key.\n<!-- This is a random-length HTML comment: tgmijslzfwfkbktnapqxedcbllosvgcyaanmcyzhputsuerpqcpiomckurucullmhzgfbdddyxqxpykpbvilzwfmndmpqdxyyqnwamyoazzzudlkogidzxgegvizcmyylshgsrsognjlfsnwyvkvjcbhshtlghswbitidntlbpdzhdgunwroofflbunfhnazakyfkixrtlmeqpfaowzgxkffbekfghpkyrfatjyackvcznfeaaotljhwdexrgwfxbpvrdkbqvnuaxcrfmxhkzdvkbxhenxfnmgwdgkkdkgmlobngwklrsygaiendstpdgaewqencjyxienvcxcdfmpavdzmjyplgv -->'
    

    此响应没有 JSON 格式,这显然是您的问题。 JSONDecoder 需要一个字符串,其中包含它期望从流派中获得的格式

    '{"name": "John", "age": 30, "city": "New York"}'

    检查您的响应是否采用 JSON 解码器可读的格式,如果是且问题仍然存在,请报告。

    【讨论】:

      猜你喜欢
      • 2021-07-02
      • 2018-01-03
      • 1970-01-01
      • 1970-01-01
      • 2021-09-05
      • 2018-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多