You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用re.findall()提取A-Z字母时触发TypeError的技术求助

解决re.findall()抛出TypeError的问题

嘿,我一眼就看出问题出在哪啦!你报错的原因很直接:re.findall() 方法要求第二个参数必须是字符串或者字节类对象,但你这里传入的 val 是整数 2,完全不符合要求,所以才会抛出 TypeError: expected string or bytes-like object 这个错误。

修复方案其实超简单:

只需要把整数 val 转换成字符串类型再传给 re.findall() 就行啦,有两种常见的写法:

写法一:直接在传参时转换

import re
key, val = ' ', 2
self._l[key] = re.findall(r"[A-Z]+", str(val))

写法二:先转换val再使用

import re
key, val = ' ', 2
val_str = str(val)
self._l[key] = re.findall(r"[A-Z]+", val_str)

不过这里要提醒你一下哦:因为 val 是数字2,转换成字符串后是 "2",里面根本没有A-Z的字母,所以最终 re.findall() 返回的会是一个空列表 []。如果你的实际需求里 val 有时候会包含大写字母,那这个转换就没问题;但如果val本来就不该是数字,那你得先检查一下为什么val会被赋值成整数,从源头修正输入类型~

内容的提问来源于stack exchange,提问作者Edward Zion Saji

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:12:29