Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获取python字典中具有特定键的所有项的值?_Python_Dictionary - Fatal编程技术网

如何获取python字典中具有特定键的所有项的值?

如何获取python字典中具有特定键的所有项的值?,python,dictionary,Python,Dictionary,我有一本格式如下的字典(它缺少值,obv): 我需要访问键为“key”的所有值 jira_key=dict[“问题”][0][“关键”] 这抓住了第一个的关键,但我需要60多个。我尝试过各种我发现的东西,但似乎没有什么是成功的 注意:不是开发人员:)像往常一样,有多种方法可以实现这一目的 其中一种方法是使用itemgetter: from operator import itemgetter as itg key_finder = itg('key') my_values = list(map(

我有一本格式如下的字典(它缺少值,obv):

我需要访问键为“key”的所有值

jira_key=dict[“问题”][0][“关键”]

这抓住了第一个的关键,但我需要60多个。我尝试过各种我发现的东西,但似乎没有什么是成功的


注意:不是开发人员:)

像往常一样,有多种方法可以实现这一目的

其中一种方法是使用
itemgetter

from operator import itemgetter as itg
key_finder = itg('key')
my_values = list(map(key_finder, DICT_NAME['issues']))
itemgetter
作为理解的包装,基本上返回
tuple(obj[i]表示项目中的i)
,其中
items
是传递到
itemgetter
的参数集合。因此,
itemgetter('key','id')
将搜索
'key'
'id'
,应用于字典的函数将返回它的
'key'
'id'
值,在这种情况下只需要
'key'

map(function,iterable)
函数
顺序应用于iterable中的项,例如
函数(iterable[0]);函数(iterable[1])

在您的情况下,必须多次循环并合并结果:

from functools import reduce
issue_key_values = reduce(lambda x,y: x+y, [list(map(key_finder, ll['issues'])) for ll in jira_list])
还原运算符,从其docstring:

将两个参数的函数累计应用于序列项, 从左到右,以便将序列减少为单个值


其他步骤是评估生成器表达式和循环理解,你可以在这个网站(和谷歌)上找到大量的资料。

你只是在过滤
dict['issues']
列表,还是必须在结构中的任何地方找到字典?如果你只是想获取
dict['issues'][0]['key']
dict['issues'][1]['key']
等(只需
dict['issues']
列表中的
key
值),然后搜索
。。。循环
然后你就可以上路了。所以让我们假设你有一个dict:
一些dict={'issues':[{'key':'bla'},{'smth'else':'bla'}]}
你可以得到这样的筛选:
新的dict={'issues':[d在一些dict中代表d['issues']如果d中的'key'}
不确定你是否想得到一个名为'key'的'key',key',key'仅供参考。如果您想从python dict获取所有键,您可以执行
some_dict.keys()
我假设您只想从单个列表中提取
key
的值。我确实想从列表中获取值,但我已经得到了第一个值。从外观上看,所有票证数据都嵌套在列表中的字典中。所以我不知道如何告诉它给我键“key”的所有值,循环是个好主意。但是我不知道如何循环浏览字典?所以这完全有效,但是我的代码循环了数据,因为我一次只能获取x张票证
loops=math.ceil(total/max)
是我必须告诉我循环需要发生多少次的内容。我也需要重复一下。但我不知道怎么做
jira_keys=list(map(key_finder,jira_list[0]['issues'))+list(map(key_finder,jira_list[1]['issues'))
现在正在工作。但是我想让它按照我的
循环
变量所说的次数遍历列表。@bombasticbr我为sizeAh尝试了这个!太美了,谢谢你!但是,如果你愿意,你能解释其中的一些部分吗?我只是想更好地理解它如果你喜欢这个解决方案,你可以清除反对票/接受它作为有效答案。。但我要加一些绒毛
from functools import reduce
issue_key_values = reduce(lambda x,y: x+y, [list(map(key_finder, ll['issues'])) for ll in jira_list])