我想对record
应用三个级别的过滤。你知道吗
rec
在cname中。rec
是由大于2个单词组成的字符串,因此我想考虑将rec
的所有ngram签入record
i.如果gram
匹配成record
增量filter_company_level
并将其写入文件
记录中的第二个筛选器用于self.keyword_material_info
列表中的每个值value
。你知道吗
i.如果value
匹配成record
增量filter_with_material_info
并将其写入文件
第三个过滤器用于self.keyword_bse_list
中的item
。你知道吗
i.如果item
匹配成record
增量filter_with_keyword_info
并将其写入文件
二。如果最里面的过滤器存在,现在移动到下一个记录。
我已经写了这些代码,它是否满足上述条件,或者是否有任何错误?他们都没有给出错误,只是想确保逻辑是正确的。你知道吗
for record in fetch_record:
total += 1
for rec in cname:
try:
c_ngram = self.get_ngrams(rec['company_name'])
for gram in c_ngram:
if gram.lower()+' ' in u'{} {}'.format(record['title'], record['description']).lower():
filter_company_level += 1
# print "Matched based on company name : ", record['article_link']
company_write.write(record['article_link']+' - '+rec['company_name']+' - '+rec['company_code']+'\n')
for value in self.keyword_material_info:
if value.lower()+' ' in u'{} {}'.format(record['title'], record['description']).lower():
filter_with_material_info += 1
materialinfo_write.write(record['article_link']+' - '+rec['company_name']+' - '+rec['company_code']+' - '+value+'\n')
for item in self.keyword_bse_list:
if item.lower()+' ' in u'{} {}'.format(record['title'], record['description']).lower():
filter_with_keyword_info += 1
keyword_write.write(record['article_link']+' - '+rec['company_name']+' - '+rec['company_code']+" - "+value+' - '+item+'\n')
print record['article_link']
print value
print item
break
break
# break
raise GetOutOfLoop
except GetOutOfLoop:
break
或者这个是对的?你知道吗
for record in fetch_record:
total += 1
for rec in cname:
try:
c_ngram = self.get_ngrams(rec['company_name'])
for gram in c_ngram:
if gram.lower()+' ' in u'{} {}'.format(record['title'], record['description']).lower():
filter_company_level += 1
# print "Matched based on company name : ", record['article_link']
company_write.write(record['article_link']+' - '+rec['company_name']+' - '+rec['company_code']+'\n')
for value in self.keyword_material_info:
if value.lower()+' ' in u'{} {}'.format(record['title'], record['description']).lower():
filter_with_material_info += 1
materialinfo_write.write(record['article_link']+' - '+rec['company_name']+' - '+rec['company_code']+' - '+value+'\n')
flag_keyword = 0
for item in self.keyword_bse_list:
if item.lower()+' ' in u'{} {}'.format(record['title'], record['description']).lower():
filter_with_keyword_info += 1
keyword_write.write(record['article_link']+' - '+rec['company_name']+' - '+rec['company_code']+" - "+value+' - '+item+'\n')
print record['article_link']
print value
print item
flag_keyword = 1
break
if flag_keyword == 1:
break
# break
if flag_keyword == 1:
raise GetOutOfLoop
except GetOutOfLoop:
break
你不是说:
但是,当您认为必须借助异常来摆脱嵌套循环时,我建议将嵌套循环分解为一个函数并使用
return
。像这样:最好的方法是编写单元测试,将代码的输出与给定输入集的预期输出进行比较。你知道吗
相关问题 更多 >
编程相关推荐