Python for循环和if判断问题
if cc['filter']:
    for key,value in cc['filter'].items():
    for cs in value:
    if re.search(cs,item[key]) is None:  
    print('pass')
    item = item
else:
    print('not pass')
    item = None
    break
return item

代码如上,从filter里获取正则表达式和要匹配的字段(filter的数据在下面),如果正则匹配的结果是None(说明没有匹配到)这条数据没问题,如果匹配到了,整个item=None,跳出循环。

但是现在有三个字段,四个正则,只要匹配结果是None,循环就结束了,后面的正则就不会执行了...按理说不应该把全部的正则匹配一遍么或者遇到else为止么

'filter':{
                    'title':
                        [
                            '.*?_国网',
                            '题材瞻',
                         ],
                    'content':
                        [
                        '\(来源:.*?\)'
                    ],
                    'source':[
                        '.*?hangq'
                    ],
                    'url':[]
                }`

item的数据:


item = {'content': '(来源:新浪网)一、题材前瞻 1、MicroLED显示技术突破量产关卡商用进程有望进一步加速、国星光电、华灿光电。 (来源:中国网财经)',
            'source': '旺角资讯',
            'title': '个股精选(题材前瞻)_中国网',
            'url': '',
}

图片说明

如图,filter里有四个正则需要匹配,但是实际上只匹配了两个,后面的就没运行了

1个回答

我猜
你的else不是和第二个if对齐的

qq_43656607
天不绝我 回复huifaguang:如果和第一个IF对齐,也就不会报错,
大约一年之前 回复
huifaguang
huifaguang 应该是的吧,不然会报错呀
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问