如果没有找到赋值

时间:2015-09-29 19:45:33

标签: python

我从一个看起来像这样的文件中提取数据 " 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

2 个答案:

答案 0 :(得分:3)

Python中的

等于运算符是==

>>> 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