为了账号安全,请及时绑定邮箱和手机立即绑定

从字典列表中过滤和提取元素

从字典列表中过滤和提取元素

梵蒂冈之花 2023-03-16 15:48:17
我有一个命名元组列表如下record = [({   "first_name":"nadbor",   "last_name":"drozd",   "occupation":"data scientist",   "markingAgentUsed":[      {         "consumableLabelCode":"L",          "amountUsed":{            "amount" : 100,            "unit": "litre"          }      },     {         "consumableLabelCode":"Y",          "amountUsed":{            "amount" : 300,            "unit": "mililitre"          }      },     {         "consumableLabelCode":"0",          "amountUsed":{            "amount" : 999,            "unit": "gallon"          }      }   ]})][{'first_name': 'nadbor', 'last_name': 'drozd', 'occupation': 'data scientist', 'markingAgentUsed': [{'consumableLabelCode': 'L', 'amountUsed': {'amount': 100, 'unit': 'litre'}}, {'consumableLabelCode': 'Y', 'amountUsed': {'amount': 300, 'unit': 'mililitre'}}, {'consumableLabelCode': '0', 'amountUsed': {'amount': 999, 'unit': 'gallon'}}]}]我想根据 LabelCode 的输入参数提取值,我想提取两个值 amount 和 unit。例如,如果我通过 O,我应该得到 999 和加仑作为输出。
查看完整描述

2 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

record = [({

   "first_name":"nadbor",

   "last_name":"drozd",

   "occupation":"data scientist",

   "markingAgentUsed":[

      {

         "consumableLabelCode":"L",

          "amountUsed":{

            "amount" : 100,

            "unit": "litre"

          }

      },

     {

         "consumableLabelCode":"Y",

          "amountUsed":{

            "amount" : 300,

            "unit": "mililitre"

          }

      },

     {

         "consumableLabelCode":"0",

          "amountUsed":{

            "amount" : 999,

            "unit": "gallon"

          }

      }

   ]

})]


userKey = '0'

for entry in record[0]['markingAgentUsed']:

    if entry['consumableLabelCode'] == userKey:

        print("Amount - {}".format(entry['amountUsed']['amount']) )

        print("Units - {}".format(entry['amountUsed']['unit']) )


查看完整回答
反对 回复 2023-03-16
?
四季花海

TA贡献1811条经验 获得超5个赞

这一切都是关于理解数据结构的嵌套(这不是一个命名的元组,而是一个字典元组列表和一个字典列表,其中一些键本身就是字典:-/很少!这段代码提取了你的内容要求:


inp = '0'


for ma in record[0]['markingAgentUsed']:

    if ma['consumableLabelCode'] == inp:

        print(ma['amountUsed']['amount'], ma['amountUsed']['unit'])


查看完整回答
反对 回复 2023-03-16
  • 2 回答
  • 0 关注
  • 91 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信