【问题标题】:Appending a dictionary containing a list to another dictionary in python将包含列表的字典附加到python中的另一个字典
【发布时间】:2016-08-18 15:24:24
【问题描述】:

我有以下字典,您可以看到,出价列表是字典中与实际工作处于同一级别的项目。

我想做的是将 bids:[] 密钥对附加到 job:{} 字典中,这样我就可以允许用户向程序提供工作 ID,它会输出一个申请人名单。

这就是字典的样子,不幸的是我无法控制它最初是如何创建的。

{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,它会输出一份申请者姓名的列表。

这里有什么帮助吗?

【问题讨论】:

  • 到目前为止您尝试过什么? bids:[] key pair 是什么?
  • 你为什么不直接做d['job']['bids'] = d['bids']
  • @Kasramvd 对不起,我只是说投标:[] 项目。我正在尝试这个:response = {the dictionary above}job = response['job']bids = response['bids']new = job.update(bids)
  • @TimFuchs 你能再解释一下吗?

标签: python arrays list dictionary


【解决方案1】:

可能是这样,如果d 是您的原始字典:

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

现在您可以使用给定的JobID 搜索所有求职者:

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

【讨论】:

  • 在这种情况下,您是在此处创建一个名为“jobs”的新列表吗?
  • 我实际上假设一个以 JobID 为键的字典 jobs 已经存在,我只是向其中添加另一个 JobID。
  • 我已经理解了,通过获取您的代码并将其应用于我的数据,我能够使其工作!我需要添加另一个循环,因为上面的数据到达一个数组,因为发布了多个工作。这工作得很好
猜你喜欢
  • 2021-11-03
  • 1970-01-01
  • 1970-01-01
  • 2021-06-08
  • 2020-12-06
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
相关资源
最近更新 更多