2017-04-04 4 views
-1

Unten ist die Ausgabe, die nach einem Merge-Prozess erhalten wurde.Wie man einen neuen Schlüssel hinzufügt und einen vorhandenen Wert in einem Lexikon des Wörterbuchs in Python übereinstimmt?

{

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

}

My gewünschte Ausgabe ist

{

u'a ': {u'id': [u'v-PH65848HI '], u'social_links': { 'linkedin': [ 'linkedin_link'], 'Facebook: [' facebook_link ']}},

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

}

die unten ist der Code:

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] 

Ich weiß nicht, wie ich damit fortfahren soll. Freundlich helfen ! Danke im Voraus.

+0

Wäre schön, Ihre Eingabe zu teilen, wie gut ... – Julien

+0

@Julien: Ich denke, die erste Blockquote der Eingang (die Ausgabe von _Some other_ Prozess). –

Antwort

0

Sie scheinen nicht alle Ergebnisse zu speichern. Also habe ich den Typ in eine Liste mit Wörterbüchern geändert. Darüber hinaus habe ich den Code überprüft und es so gemacht, dass es sich nicht auf Indizes verlässt, wenn Sie bereits eine Wertschleife haben, um facebook zu finden.

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) 
Verwandte Themen