我正在使用正则表达式验证CSV文件中的电子邮件地址。我使用以下代码来满足上述要求
@staticmethod
def emailValidReg(input):
with open('simple_rule.txt', 'r') as content_file:
content = content_file.read()
if re.search(content, input):
return True
else:
return False
@staticmethod
def validation(src):
df = pd.read_csv(src)
df = df.copy();
df["Email_validate"] = df["email"].apply(Validator.emailValidReg)
df_filtered = df[df['Email_validate']]
del df_filtered["Email_validate"]
df_filtered.to_csv('email_validator_reg.csv')
i = Validator()
i.validation('test.csv')
simple_rule.txt
[a-zA-Z0-9!#$%&'*+/=?^_`{|}~.-]+@[a-zA-Z-]+\.[a-z]
代码运行时将出现以下内容
Traceback (most recent call last):
File "E:/RegexExercise/Validator.py", line 57, in <module>
i.validation('sample.csv')
File "E:/RegexExercise/Validator.py", line 43, in validation
df["Email_validate"] = df["email"].apply(Validator.emailValidReg)
File "E:\RegexExercise\venv\lib\site-packages\pandas\core\series.py", line 3848, in apply
mapped = lib.map_infer(values, f, convert=convert_dtype)
File "pandas\_libs\lib.pyx", line 2327, in pandas._libs.lib.map_infer
File "E:/RegexExercise/Validator.py", line 33, in emailValidReg
if re.search(content, input):
File "C:\Users\Local\Programs\Python\Python37-32\lib\re.py", line 183, in search
return _compile(pattern, flags).search(string)
TypeError: expected string or bytes-like object
我使用的CSV文件是sample.csv
,regex文件是simple_rule.txt
。py类是Validator
有人能解释一下为什么会发生这种情况,并提出解决问题的建议吗。我试图阅读和理解类似的错误给出的问题,但情况不同,这是有点难以理解。请帮帮我
目前没有回答
相关问题 更多 >
编程相关推荐