2016-08-18 2 views
-2

У меня есть следующий словарь, так как вы можете видеть, что список сделанных ставок - это элемент в словаре на том же уровне, что и фактическое задание.Добавление словаря, содержащего список для другого словаря в python

То, что я хотел бы сделать, это добавить ставки: [] к парам задания: {}, чтобы я мог позволить пользователю дать идентификатор задания программе, и он будет выводить список имен заявителей.

Вот как выглядит словарь, и, к сожалению, у меня нет никакого контроля над тем, как он создан изначально.

{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}} 

Поэтому я хочу, чтобы пользователь дал мне JobID, и он выведет список имен людей, которые применяли.

Любая помощь здесь?

+0

Что вы пробовали до сих пор ? и какие 'ставки: [] ключевая пара'? – Kasramvd

+0

Почему бы вам просто не выполнить 'd ['job'] ['bids'] = d ['bids']'? –

+0

@ Kasramvd извините, что я имел в виду ставки: [] item. Я пытался это сделать: 'response = {словарь выше}' 'job = response ['job']' 'bids = response ['bids']' 'new = job.update (ставки)' – beerandsmiles

ответ

0

Может быть, как это, если d Ваш оригинальный словарь:

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

Теперь вы можете искать для всех претендентов на работу с заданным JobID:

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

В этом случае вы создаете новый список, называемый «jobs» здесь? – beerandsmiles

+0

Я на самом деле предполагаю, что словарь 'jobs' с идентификаторами JobID уже существует, и я просто добавляю к нему другой JobID. –

+0

Я понял это, взяв ваш код и применив его к моим данным, я могу заставить его работать! Мне нужно было добавить еще один цикл, поскольку приведенные выше данные поступают в массив, так как есть более одного опубликованного задания. Это отлично работало – beerandsmiles

Смежные вопросы