我从一个看起来像这样的文件中提取数据 " LIC_ARP11 | 104100000X | 33" 我从第二个字段中收集分类号(分类法)并使用另一个文件(IDVtaxo)进行翻译,如下所示:
" 104100000X行为健康&社会服务提供者社会工作者"
如果分类号不在IDVtaxo中,我想附加" Not Found"
if taxofile.startswith('IDV'):
for nums in taxonomies:
IDVfile = open (os.path.join(taxodir,IDVtaxo))
for line in IDVfile:
text = line.rstrip('\n')
text = text.split("\t")
if nums in line:
data = text[2:]
final.append(data)
else:
final.append('Not Found')
然后我打印原始数据和翻译的分类法。目前我得到: " LIC_ARP11 | 104100000X | 33 |找不到" 我想要: " LIC_ARP11 | 104100000X | 33 |社会工作者"
问题似乎是"否则"追加"未找到"对于每一行而不是在IDVtaxo中找不到分类法时。
taxonomies = ['152W00000X', '156FX1800X', '200000000X', '261QD0000X', '3336C0003X', '333600000X', '261QD0000X']
translations = {'261QD0000X': 'Clinic/Center Dental', '3336C0003X': 'Pharmacy Community/Retail Pharmacy', '333600000X': 'Pharmacy'}
a = 0
final = []
for nums in taxonomies:
final.append(translations.get(nums, 'Not Found'))
for nums in taxonomies:
print nums, "|", final[a]
a = a + 1
答案 0 :(得分:3)
等于运算符是==
:
>>> if data == 'Not Found':
... final.append(data)
表示“不相等”:
>>> if data != 'Not Found':
... final.append(data)
答案 1 :(得分:0)
您似乎正在测试每行中是否存在nums
,并且每次附加“未找到”时找不到nums
。
相反,请尝试维护存储“未找到”字符串的变量(例如job_title
)。如果找到nums
,请将job_title
重新分配给正确的值,并将其附加到循环外的final
。
如果您将IDVtaxo加载到字典结构中,我相信您可以获得更高效的解决方案! https://docs.python.org/2/tutorial/datastructures.html#dictionaries