2016-08-18 5 views
-2

Ich habe das folgende Wörterbuch, wie Sie sehen können, ist die Liste der Gebote ein Element im Wörterbuch auf der gleichen Ebene wie der eigentliche Auftrag.Ein Wörterbuch mit einer Liste an ein anderes Wörterbuch in Python anhängen

Was ich gerne tun könnte, ist das Anfügen der Gebote: [] Schlüsselpaar an den Job: {} Wörterbuch, so dass ich dann einem Benutzer erlauben kann, eine Job-ID an das Programm zu geben und es wird ausgegeben eine Liste der Namen der Bewerber

So sieht das Wörterbuch aus, und leider habe ich keine Kontrolle darüber, wie es ursprünglich erstellt wurde.

{u'bids': [{u'applicantId': 221, 
      u'Name': u'name name', 
      u'bidID': 2}, 
      {u'applicantId': 356, 
      u'Name': u'name name', 
      u'bidID': 5}, 
      {u'applicantId': 240, 
      u'Name': u'name name', 
      u'bidID': 9}], 
u'job': {u'address': u'6 something St', 
      u'bids': None, 
      u'budget': 30.0, 
      u'jobID': 10}} 

Also ich möchte, dass ein Benutzer mir die JobID gibt und es wird eine Liste der Namen der Personen, die sich beworben haben, ausgeben.

Irgendwelche Hilfe hier?

+0

Was Sie bisher versucht haben, ? und was ist 'bids: [] key pair'? – Kasramvd

+0

Warum machst du nicht einfach 'd ['job'] ['bids'] = d ['bids']'? –

+0

@Kasramvd Entschuldigung Ich meinte nur die Angebote: [] Artikel. Ich habe dies versucht: 'Antwort = {das Wörterbuch oben}' 'Job = Antwort ['Job']' 'Gebote = Antwort ['Gebote']' 'neue = Job.update (Gebote)' – beerandsmiles

Antwort

0

wie dies Vielleicht, wenn d ursprünglichen Wörterbuch ist:

jobs[d['job']['jobID']] = d['job'] 
jobs[d['job']['jobID']]['bids'] = d['bids'] 

Jetzt können Sie für alle Bewerber für einen Job mit einem JobID gegeben suchen:

applicants = [bid['Name'] for bid in jobs[JobID]['bids']] 
+0

Erstellen Sie in diesem Fall eine neue Liste namens "jobs"? – beerandsmiles

+0

Ich nehme tatsächlich an, dass ein Wörterbuch 'jobs' mit JobIDs als Schlüssel bereits existiert, und ich füge gerade eine andere JobID hinzu. –

+0

Ich habe es verstanden, indem ich Ihren Code nehme und mich auf meine Daten bewerbe, kann ich es zum Laufen bringen! Ich musste eine weitere Schleife hinzufügen, da die obigen Daten in einem Array ankommen, da mehr als ein Job veröffentlicht wurde. Das hat perfekt funktioniert – beerandsmiles

Verwandte Themen