Python字符串转整数报错:ValueError: invalid literal for int() with base 10: '2,674'
解决带千位逗号的字符串转整数的ValueError问题
这个问题我之前也碰到过!你遇到的ValueError核心原因是字符串里的千位分隔符逗号——Python的int()函数只能识别纯数字字符串,没法处理带逗号的格式,所以'2,674'直接转int就会报错。
快速修复方案(最通用)
直接把数字字符串里的逗号去掉,再转换为整数,修改你的代码如下:
like1 = '2,674 likes' # 拆分出数字部分后,替换掉逗号 number_str = like1.split()[0].replace(',', '') number = int(number_str) print('This is the number ::', number)
进阶方案(适配多区域数字格式)
如果你的业务需要处理不同地区的数字分隔符(比如欧洲用.做千位分隔),可以用Python的locale模块来解析:
import locale # 设置为英文区域(支持千位逗号分隔) locale.setlocale(locale.LC_ALL, 'en_US.UTF-8') like1 = '2,674 likes' number_str = like1.split()[0] # 用locale的atoi方法解析带格式的数字字符串 number = locale.atoi(number_str) print('This is the number ::', number)
⚠️ 注意:这种方法需要运行环境支持对应的区域设置,比如服务器上可能需要先安装对应的locale包,所以如果只是处理英文千位逗号,第一种方法更简单可靠。
业务场景适配
转成整数后,你就可以正常和其他整数(比如1000)做比较了,示例:
if number > 1000: print("这条内容的赞数超过1000啦!") else: print("赞数还没到1000哦")
内容的提问来源于stack exchange,提问作者Shawn
相关产品推荐
相关产品推荐

