AttributeError:组

2024-10-03 15:29:59 发布

您现在位置:Python中文网/ 问答频道 /正文

from mrjob.job import MRJob
import re

Creation_date=re.compile('CreationDate=\"[0-9]*\"[:17]')
class Part2(MRJob):
    def mapper(self, _, line):
        DateOnly=Creation_date.group(0).split("=")
        if(DateOnly > 2013):
           yield None, 1

    def reducer(self, key, values):
        yield key, sum(values)

if __name__ == '__main__':
     Part1.run()

我为MapReduce作业编写了python代码,CreationDate=“2010-07-28T19:04:21.300”。我必须找到创建日期在2014年1月1日或之后的所有日期。但是我遇到了一个错误。在


Tags: keyfromimportselfredateifdef
2条回答

Regular expression object(结果是^{})没有group方法:

>>> pattern = re.compile('CreationDate="([0-9]+)"')
>>> pattern.group
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: '_sre.SRE_Pattern' object has no attribute 'group'

要获得一个match object(它有一个^{}方法),您需要使用^{} method(或^{} method)根据字符串(line)匹配模式:

^{pr2}$
Creation_date = re.compile('CreationDate="([0-9]+)"')

def mapper(self, _, line):
    date_only = Creation_date.search(line), group(1)
    if int(date_only) > 2013:
       yield None, 1

注意:修改了正则表达式以将数字部分作为一个组来捕获。并将匹配的字符串转换为int(字符串与数字2013比较没有意义,或者根据Python版本引发异常)

Creation_date只是一个正则表达式。在

{cd2>你需要在调用之前匹配你的输入

相关问题 更多 >