我试图替换csv第一列中的字符串,但遇到了一些问题,即“AttributeError:NoneType object has no attribute group”错误。当使用这样的代码作为测试时,一切正常。
```你知道吗
import re
array = [['aaa-bbb-ccc_dddL_eee_V00T00000-00_00000_V00T00000-00_00000_ACK_00000000.XML', '907 ', 'Sep 13 2018 18:07', ' '], ['V11T11111-11_11111_V11T11111-11_11111_ACK_11111111.XML', '875','Jan 31 2018 00:00',' ']]
print(array, end='\n\n')
for item in array:
m = re.search(r'(\D\d+\D\d+\-\d+)', item[0])
print(m.group(),end='\n\n')
item[0] = m.group()
print(item,end='\n\n')
````
但是,当试图在一个脚本中实现这一点时,打开一个csv,它将有一个类似结构的数组(只是数组中有更多的数组),我会收到NoneType错误
````
with open('./input.csv', 'r') as f:
reader = csv.reader(f)
for row in read`enter code here`er:
m = re.search(r'(\D\d+\D\d+\-\d+)', row[0])
row[0] = m.group()
````
我不太清楚为什么第二个实现不起作用,因为我确实在csv中得到了匹配。任何帮助都将不胜感激。谢谢
使用re.search时,如果找不到匹配项,函数将返回None,如果出现这种情况,代码将转换为None.group(),这就是您看到的错误。要解决此问题,请先检查search是否找到任何内容:
相关问题 更多 >
编程相关推荐