gpt4 book ai didi

python - 如何使用python ISBNLIB元方法捕获错误并继续

转载 作者:行者123 更新时间:2023-12-03 08:22:09 25 4
gpt4 key购买 nike

我有一个使用FLASK和ISBNLIB库的简单应用程序,该应用程序获取条形码和isbn号,搜索ISBN并将信息插入数据库。

isbnlib元方法搜索ISBN,然后将其插入我的sqlite数据库中。

我的问题是,当找不到那本书时,我收到一个错误:

isbnlib.dev._exceptions.NoDataForSelectorError



我想要实现的是使应用程序捕获此错误,并且仍然将我的条形码和isbn插入数据库,并在其他字段中输入空值。

我不确定如何解决这个问题。

任何建议将不胜感激。

这是代码:
else:
# Assign meta dictionary to book_lib for value calling.
book_lib = (isbnlib.meta(isbn, service='goob', cache='default'))

# Display meta data to user.
flash(isbnlib.meta(isbn, service='goob', cache='default'))

# Assign meta dictionary values to variables for insertion to DB.
author = str(book_lib['Authors'])
lang = book_lib['Language']
publisher = book_lib['Publisher']
title = book_lib['Title']
publYear = book_lib['Year']

db.execute(
'INSERT INTO new_book (barcode, isbn, invoice, author_id, author, lang, publisher, title, publYear)'
' VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)',
(barcode, isbn, invoice, g.user['id'], author, lang, publisher, title, publYear)
)
db.commit()
return redirect(url_for('book.newbook'))

最佳答案

与此类似的东西应该为您工作:

from isbnlib.dev._exceptions import NoDataForSelectorError


else:
# Assign meta dictionary to book_lib for value calling.
author = None
lang = None
publisher = None
title = None
publYear = None

try:
book_lib = isbnlib.meta(isbn, service='goob', cache='default')
# Display meta data to user.
flash(book_lib)

# Assign meta dictionary values to variables for insertion to DB.
author = str(book_lib['Authors'])
lang = book_lib['Language']
publisher = book_lib['Publisher']
title = book_lib['Title']
publYear = book_lib['Year']

except NoDataForSelectorError:
pass

db.execute(
'INSERT INTO new_book (barcode, isbn, invoice, author_id, author, lang, publisher, title, publYear)'
' VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)',
(barcode, isbn, invoice, g.user['id'], author, lang, publisher, title, publYear)
)
db.commit()
return redirect(url_for('book.newbook'))

关于python - 如何使用python ISBNLIB元方法捕获错误并继续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53647380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com