Python TypeError报错:int()参数应为字符串/字节/数字而非set
问题解决:TypeError: int() argument must be a string, a bytes-like object or a number, not 'set'
错误根源是你在字典params里赋值时用了大括号{api_key}和{n_page}——这在Python里会被解析成集合(set),而不是变量的实际值。所以params['start_page']存储的是{'1'}这个集合,当你执行int(params['start_page'])时,自然无法把集合转换成整数,触发类型错误。
直接去掉值外面的大括号,修正后的代码如下:
api_key = '2323' n_page = '1' params = { 'api_key': api_key, 'start_page' : n_page, } params['start_page'] = str(int(params['start_page']) + 10)
原理很简单:Python字典的键值对赋值时,直接写变量名就能引用它的取值,不需要额外套大括号。修正后params['start_page']存储的是字符串'1',后续转整数、加10再转回字符串的逻辑就能正常执行了。
内容的提问来源于stack exchange,提问作者Pren Ven
相关产品推荐
相关产品推荐

