Python json.decoder.JSONDecodeError:预期值:第1行第1列(字符0)。仅应答10个字符的格式副本

Python json.decoder.JSONDecodeError:预期值:第1行第1列(字符0)。仅应答10个字符的格式副本,python,json,api,flask,raiseerror,Python,Json,Api,Flask,Raiseerror,上面的版本有效。然而,例如“756403146”,你得到的回答是“没有书籍与那些ISBN相匹配”。(在result.text中)。因此,isbn不在数据库中。如果您尝试使用.json()返回这些响应的结果,您将收到您发布的错误消息。通过谷歌搜索您无法使用的ISBN编号,发现它们似乎错误地删除了前导零。(许多ISBN代码看起来像数字,但最后一个字符通常是字母符号,因此不能将其作为整数值处理。) 尝试用前导零填充,使代码长度始终正好为10或13个字符;任何其他长度都不是有效的ISBN 可能会在实际数

上面的版本有效。然而,例如“756403146”,你得到的回答是“没有书籍与那些ISBN相匹配”。(在result.text中)。因此,isbn不在数据库中。如果您尝试使用.json()返回这些响应的结果,您将收到您发布的错误消息。

通过谷歌搜索您无法使用的ISBN编号,发现它们似乎错误地删除了前导零。(许多ISBN代码看起来像数字,但最后一个字符通常是字母符号,因此不能将其作为整数值处理。)

尝试用前导零填充,使代码长度始终正好为10或13个字符;任何其他长度都不是有效的ISBN


可能会在实际数据库中修复此问题,或者更好,在数据库中提供信息的任何来源中修复此问题;你不想在以后处理像这样的损坏数据。

对于存在的isbn编号,也给出了错误,但我也需要它们的api。你能告诉我处理这件事的确切密码吗。当我使用if res.status_code!=404:raiseexception(“ERROR:NOT FOUND.”)我得到的错误与isbn raiseexception中的第135行类似(“ERROR:NOT FOUND.”)Exception:ERROR:NOT FOUND.15903881271423160924048641423x,5559609129这些是它正常工作的一些错误。虽然75640314630726578120306652这些都是少数不起作用的;但它应该起作用。这些少于10个字符没有响应。数据库中显示了isbn号。我检查过了。没有有效的ISBN,它的长度不完全是10或13个字符。ISBN号码存储在我的数据库中。当你的数据库中有无效的ISBN号时,我在下面提到了一些。试着在其他ISBN服务上查找这些数字,你会发现。你的问题应该正确地包含你提供的所有信息;评论可以而且经常应该被删除。也许您仍希望更新问题以使其独立。如果您的数据库架构要求ISBN字段为
int
,则可能会拒绝大量有效的ISBN:s,因为它们违反了关键约束。如果可以的话,也可以回去修复它。在数据库中,它的字符类型是变化的。这些是我从古德雷德那里得到的isbn号码。我刚把它们导入我的数据库。在它们前面加零不会错
@app.route('/api/<string:isbn>', methods = ['GET'])
def isbn(isbn):
#import api from Goodreads (stats)

    book_data = db.execute("SELECT * FROM books WHERE isbn=:isbn",{'isbn':isbn}).fetchone()
    title = book_data['title']
    author = book_data['author']
    year = book_data['year'] 


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

    reviews_count = float(res['books'][0]['reviews_count'])
    avg_score = float(res['books'][0]['average_rating'])
    dic = {"title": title, "author":author, "year": year,"isbn":isbn,"reviews_count":reviews_count,"avg_score":avg_score}
    print(dic)
    return jsonify(dic)
 line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
import requests
isbn = '1590388127'
result = requests.get("https://www.goodreads.com/book/review_counts.json",
                   params={"key": "4RbGuzka0IUcJWWk1mivqg", "isbns": isbn})

if result.status_code == 200:
    res = result.json()
else:  # print reason
    print(result.text)