Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 属性组不属于对象_Python - Fatal编程技术网

Python 属性组不属于对象

Python 属性组不属于对象,python,Python,如果我在脚本的开头声明“line”变量,那么下面的代码可以正常工作。类似于 s = "Jul 15 12:12:51 whitelist logger: 1|999999999999|id:d9faff7c-4016-4343-b494-37028763bb66 submit date:1307130919 done date:1307130919 stat:DELIVRD err:0|L_VB3_NM_K_P|1373687445|vivnel2|L_VB3_GH_K_P|promo_camp

如果我在脚本的开头声明“line”变量,那么下面的代码可以正常工作。类似于

s = "Jul 15 12:12:51 whitelist logger: 1|999999999999|id:d9faff7c-4016-4343-b494-37028763bb66 submit date:1307130919 done date:1307130919 stat:DELIVRD err:0|L_VB3_NM_K_P|1373687445|vivnel2|L_VB3_GH_K_P|promo_camp1-bd153424349bc647|1"
打开文件并循环行时,“组”属性不起作用。我得到一个错误:AttributeError:“非类型”对象没有属性“组”

# cat mylast.py
import re

f = open('customer.csv')

for line in f:

      logger_re = re.compile(
     "logger: ([^ ]+)\
      submit date:(\d+)\
      done date:(\d+)\
      stat:(.+)\
      err:(.+)$")
      myvalues = logger_re.search(line).groups()
      print myvalues

f.close()
例外情况:

# python mylast.py
Traceback (most recent call last):
  File "mylast.py", line 13, in ?
    myvalues = logger_re.search(line).groups()
AttributeError: 'NoneType' object has no attribute 'groups'

正则表达式与实际文件内容不匹配

因此,
logger\u re.search(line)
返回
None

这里的问题是,您缩进了正则表达式,但没有补偿额外的空白:

logger_re = re.compile(
     "logger: ([^ ]+)\
      submit date:(\d+)\
      done date:(\d+)\
      stat:(.+)\
      err:(.+)$")
请注意,行开头的空格很重要。使用单独的字符串(Python将在编译时连接它们):


如果没有找到匹配项,搜索将返回
None
。在尝试访问
groups()

之前,您需要检查
myvalues是否为None
print repr(line)
告诉您文件中有什么内容?
logger_re = re.compile(
     "logger: ([^ ]+) "
     "submit date:(\d+) "
     "done date:(\d+) "
     "stat:(.+) "
     "err:(.+)$")