简体   繁体   中英

loop over dict key-value-pair or each element in dict

I have a dict that looks something like : PathNameRxn = {'ID':'2048 444','Name':'john hh', 'Father Name':'David ll'}

and this function:

def DefGrp(PathNameRxn): #.split("_")[0]
    groups=""
#   RxnID = Rxn.ID
    #print(PathName)
    for PathName in PathNameRxn:
        group= '''      <groups:group sboTerm="SBO:0000633" groups:id="group" groups:name="'''+PathName+'''" groups:kind="partonomy">
        <groups:listOfMembers>\n'''      
        for RxnID in PathNameRxn[PathName].split():
            idRef = '''          <groups:member groups:idRef="'''+str(RxnID.split("_")[0])+'''"/>\n'''
            groups += idRef            
        listOfMembers= '''        </groups:listOfMembers>
      </groups:group>''' 
        return group+groups+listOfMembers

this code

listOfGroups=DefGrp(PathNameRxn)
print(listOfGroups)

gives me:

<groups:group sboTerm="SBO:0000633" groups:id="group" groups:name="ID" groups:kind="partonomy">
        <groups:listOfMembers>
          <groups:member groups:idRef="2048"/>
          <groups:member groups:idRef="444"/>
        </groups:listOfMembers>
      </groups:group>

but I want:

<groups:group sboTerm="SBO:0000633" groups:id="group" groups:name="ID" groups:kind="partonomy">
        <groups:listOfMembers>
          <groups:member groups:idRef="2048"/>
          <groups:member groups:idRef="444"/>
        </groups:listOfMembers>
      </groups:group>
<groups:group sboTerm="SBO:0000633" groups:id="group" groups:name="Name" groups:kind="partonomy">
        <groups:listOfMembers>
          <groups:member groups:idRef="john"/>
          <groups:member groups:idRef="hh"/>
        </groups:listOfMembers>
      </groups:group>

can someone help me to achieve this? I want to loop though every element of my dict

看起来您的 return 语句缩进错误。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM