2 回答

TA贡献1812条经验 获得超5个赞
我通常通过首先编写一个简单的函数来解决此类问题。正如@Maribeth Cogan 所建议的那样,一旦您了解了基本原理,您就可以通过列表理解之类的方式获得更好的并尝试代码优化。
def findId(obj_dictionary, color):
lst = obj_dictionary['pipelineIdList']
for dictionary in lst:
if dictionary['name'] == color:
return(dictionary['id'])
我们从给定的字典中提取我们想要查看的列表,然后遍历该列表的元素以找到其值与给定color目标匹配的字典元素。然后,该方法返回与该字典元素对应的键。

TA贡献1777条经验 获得超3个赞
一个简单的列表理解可以解决您的问题。尝试运行此代码:
my_color='Red'
result = [colorDict['id'] for colorDict in d['pipelineIdList'] if colorDict['name']==my_color][0]
的值result现在应该是df-0004
解释:列表推导将其属性为所需颜色id的任何字典添加到列表中。由于所需颜色只有一个字典,因此列表的长度为 1。然后您访问该列表的第一个(也是唯一一个)元素,其索引为 0。pipelineIdListname
添加回答
举报