如何使用列表查找多个字典项

时间:2013-10-15 21:49:42

标签: python csv raw-input

我有以下代码从用户获取字符串列表作为raw_input:

def Lookup(Dict_list):
    print 'Please enter one alias per line. Leave blank when finished.'
    user_alias = [alias for alias in iter (raw_input, '') ]
    print user_alias
    for row in Dict_list:

        #print "row test"
        #print row
        if user_alias in row.values():
            print row


    for row in Dict_list:
        if user_alias[0] == row['_cn6ca']:
                email1 = row['_chk2m']
                print email1
                return email1
            if user_alias[1] == row['_cn6ca']:
                email2 = row['_chk2m']
                print email2
                return email2
            if user_alias[2] == row['_cn6ca']:
                email3 = row['_chk2m']
                print email3
                return email3

Lookup(Dict_list)

如何更改if user_alias == row ['_ cn6ca']:行,以便它会查找并返回用户输入的用户别名的每个用户的电子邮件? (这些键将保持不变)

我的目标是将这些已查找的电子邮件存储在以后的.csv


以下是终端中生成的内容:

请在每行输入一个别名。完成后留空。 PaulDu Jeanell Twanna JaneyD 夏洛 Janessa

['PaulDu','Jeanell','Twanna','JaneyD','Charlot','Janessa'] 注销

[已完成处理]

1 个答案:

答案 0 :(得分:1)

我已经剥离了一些细节,以便如果行(这是一个dict类型)的用户为其值为1,那么我们就会找到他们的电子邮件ID。

    Dict_list = [{'nokey':'someval'},{'_cn6ca':'Twanna', '_chk2m': "twanna@xyz"},{'_cn6ca':'Jeanell', '_chk2m': "jeanell@xyz"}]

    #print 'Please enter one alias per line. Leave blank when finished.'
    #user_alias = [alias for alias in iter (raw_input, '') ]
    user_alias = ['PaulDu', 'Jeanell', 'Twanna', 'JaneyD', 'Charlot','Janessa']
    print user_alias
    for user in user_alias:
        for row in Dict_list:    
            if user in row.values():
                print row

    for user in user_alias:
        for row in Dict_list:
            if row.has_key('_cn6ca') and row.has_key('_chk2m'):
                if user == row['_cn6ca']:
                    email = row['_chk2m']
                    print email

输出:

    ['PaulDu', 'Jeanell', 'Twanna', 'JaneyD', 'Charlot', 'Janessa']
    {'_cn6ca': 'Jeanell', '_chk2m': 'jeanell@xyz'}
    {'_cn6ca': 'Twanna', '_chk2m': 'twanna@xyz'}
    jeanell@xyz
    twanna@xyz