Python中如何将字符串'6\u2009000'正确转换为int类型
ValueError报错的核心原因是字符串中的
\u2009属于Unicode窄空格(Thin Space),是特殊的不可见分隔符,不属于int()函数可识别的合法整数字面量组成部分,因此无法直接转换。
解决方案
方法1:通用过滤纯数字字符(适用性最广)
无需提前知道分隔符类型,直接提取所有数字字符后转换:
raw_str = '6\u2009000' # 只保留字符串中的数字字符 clean_str = ''.join(c for c in raw_str if c.isdigit()) result = int(clean_str)
执行后result的值为6000。
方法2:针对性替换已知特殊空格
如果确认字符串中仅包含\u2009作为多余分隔符,直接定向替换即可:
raw_str = '6\u2009000' clean_str = raw_str.replace('\u2009', '') result = int(clean_str)
方法3:兼容所有Unicode类空格分隔符
如果需要适配多种不同的Unicode空白分隔符,可通过字符类别过滤:
import unicodedata raw_str = '6\u2009000' # 过滤所有Unicode空格类字符(类别为Zs) clean_str = ''.join(c for c in raw_str if unicodedata.category(c) != 'Zs') result = int(clean_str)
内容的提问来源于stack exchange,提问作者Stepan SSSD
相关产品推荐
相关产品推荐

