2017-04-04 68 views
-1

下面是合并过程后获得的输出。如何添加一个新的密钥并匹配python字典中的现有值?

{

u'a '{u'id'[u'VPH65848HI '],u'social_links'[ 'linkedin_link', 'facebook_link'],

u'b“{ u'id '[u'VPH65848HJ'],u'social_links '[' linkedin_link”, 'facebook_link']

}

我的期望的输出是

{

u'a ':{u'id':[u'V-PH65848HI '],u'social_links':{ 'LinkedIn':[ 'linkedin_link'], 'Facebook的:[' facebook'链接]]}},

u'b':{u'id':[u'V-PH65848HJ'],u'social_links': {'linkedin':['linkedin_link'],'facebook: [ 'facebook_link']}}

}

的下面是代码:

for k,v in result.items(): 
    if v['social_links']:   
     for v1 in v['social_links']: 
      if "facebook" in v1: 
       result['facebook']=result['social_links'][1] 

我不知道该如何处理。请帮助!提前致谢。

+0

将是不错的分享您的输入,以及... – Julien

+0

@Julien:我认为第一个块引用是输入(从_some other_过程的输出)。 –

回答

0

您似乎没有存储所有结果。所以,我把它改成了一个列表里面有字典的列表。另外,我查看了代码,并将其设置为当您已经有一个值循环找到facebook时,它不依赖索引。

in1 = { 

    u'a':{u'id':[u'VPH65848HI'],u'social_links':['linkedin_link','facebook_link']}, 

    u'b':{u'id':[u'VPH65848HJ'],u'social_links':['linkedin_link','facebook_link']} 

    } 

def isset(variable): 
    return variable in locals() or variable in globals() 

result = [] 
for k,v in in1.items(): 
    temp = {} 
    for v1 in v[u'social_links'] : 
     if "facebook" in v1: 
      temp['facebook']=v1 
    result.append(temp) 
print(result) 
相关问题