如何访问列表中的字典类型项(python或javascript)

如何访问列表中的字典类型项(python或javascript),python,json,list,dictionary,Python,Json,List,Dictionary,我有一些数据存储在django“食物”模型的“营养素”JSONField中 一些示例数据结构位于底部 数据是Food.nutrients,但我不知道如何/以最佳方式访问营养素列表中的特定项目,该列表的结构类似于[{dict type item},{dict type item},…] 每一项都是一本字典,上面有“name”键和“nu_id”键,我觉得这可以帮助我挑选出我想要的项。然后从项目字典中,我想得到键'value'的值,我没有将键命名为'value' [{u'dp': 1, u'gr

我有一些数据存储在django“食物”模型的“营养素”JSONField中

一些示例数据结构位于底部

数据是Food.nutrients,但我不知道如何/以最佳方式访问营养素列表中的特定项目,该列表的结构类似于[{dict type item},{dict type item},…]

每一项都是一本字典,上面有“name”键和“nu_id”键,我觉得这可以帮助我挑选出我想要的项。然后从项目字典中,我想得到键'value'的值,我没有将键命名为'value'

 [{u'dp': 1,
  u'group': u'Minerals',
  u'measures': [],
  u'name': u'Manganese, Mn',
  u'nutrient_id': 315,
  u'se': u'',
  u'sourcecode': [1],
  u'unit': u'mg',
  u'value': 0.094},
 {u'dp': 1,
  u'group': u'Minerals',
  u'measures': [],
  u'name': u'Selenium, Se',
  u'nutrient_id': 317,
  u'se': u'',
  u'sourcecode': [1],
  u'unit': u'\xb5g',
  u'value': 0.4},
 {u'dp': 1,
  u'group': u'Vitamins',
  u'measures': [],
  u'name': u'Vitamin C, total ascorbic acid',
  u'nutrient_id': 401,
  u'se': u'',
  u'sourcecode': [1],
  u'unit': u'mg',
  u'value': 4.0}]

让我们假设,你有一个字典列表。现在,您可以筛选列表以查找与特定键和特定值匹配的项。例如,要查找名称为Mn,Mn的词典,可以执行以下操作:

matches = filter(lambda n: n.get('name') == 'Manganese, Mn', nutrients)
现在,匹配项列表应包含名称键中含有锰、锰的营养素


您可以使用索引匹配[0]访问第一个营养素。现在,您也可以访问其他键,如匹配项[0]。获取“值”

让我们假设,您的表中有字典列表。现在,您可以筛选列表以查找与特定键和特定值匹配的项。例如,要查找名称为Mn,Mn的词典,可以执行以下操作:

matches = filter(lambda n: n.get('name') == 'Manganese, Mn', nutrients)
现在,匹配项列表应包含名称键中含有锰、锰的营养素


您可以使用索引匹配[0]访问第一个营养素。现在,您也可以访问其他键,如匹配项[0]。获取“值”

Awesome-非常感谢。我意识到这相当于[n对n的营养素,其中n.get'name'='Mn',Mn'],这是我喜欢的方式,但我对它进行了速度测试,这种[n对n…]pythonic方式在这种情况下实际上也快了一点是的,它们是等效的。太棒了,谢谢。有效,这是一个非常小的例子。我意识到这相当于[n代表n的营养素,其中n.get'name'='Mn,Mn'],这是我喜欢的方式,但我对它进行了速度测试,这种[n代表n…]的蟒蛇方式在这种情况下实际上也快了一点是的,它们是等效的。