我正在尝试从json书籍中检索一本书。检索单本书时,我在粗体行上收到此Value Error消息。 错误- show_all_books page_num = int(request.args.get('pn')) ValueError:以10为底的int()的无效文字:'5df1170a921ee283d8529aa3'
@app.route("/api/v1.0/books", methods=["GET"])
def show_all_books():
page_num, page_size = 1, 10
if request.args.get('pn'):
***page_num = int(request.args.get('pn'))***
if request.args.get('ps'):
page_size = int(request.args.get('ps'))
page_start = (page_size * (page_num - 1))
答案 0 :(得分:1)
您收到此错误,是因为您无法将字符串转换为整数,因为它包含不允许使用的字符:
int('5df1170a921ee283d8529aa3')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '5df1170a921ee283d8529aa3'
如果您尝试输入数字:
int('1231')
1231
因此,我认为问题在于您在get('pn')
中收到的数据。 int()函数的默认基数为10,但是您可以使用十六进制基数来实现:
int('5df1170a921ee283d8529aa3', 16)
29073565845337865796180941475L
答案 1 :(得分:0)
由于出现错误,因为传递给函数的字符串不能表示为整数。 例如,如果您要这样做:
int('abc')
您将得到相同的错误,因为字符串abc不能表示为整数。