2017-04-04 70 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) 
相關問題