0

我正在使用 jira-python 库从 jira 查询数据。我正在从 jira 取回我需要的数据,但处理数据一直给我带来问题。

我正在寻找从我的查询返回的所有组件的出现次数。例如,我的查询将返回结果:

Component A
Component B
Component A
Component C

我正在寻找的结果是这样的:

Component A, 2
Component B, 1
Component C, 1

这是我当前代码的片段:

search = 'jira query'
issues = jira.search_issues(search, maxResults=100)
for issue in issues:
    [c.name for c in issue.fields.components]

从这里我尝试计算和求和 c.name

sum(1 for c.name in issue.fields.components)

但是,这不会产生正确的结果,因为我会得到像计算每个结果的字符出现次数这样的结果。

任何见解/帮助将不胜感激

4

3 回答 3

0
import collections
>>> my_result = '''Component A
... Component B
... Component A
... Component C'''
>>> my_result = my_result.split('\n')   # if they are saperated by newline
>>> my_result
['Component A', 'Component B', 'Component A', 'Component C']
>>> my_result_count = collections.Counter(my_result)
>>> my_result_count
Counter({'Component A': 2, 'Component B': 1, 'Component C': 1})
>>> for x in sorted(my_result_count.keys()):
...     print x + ", " + str(my_result_count[x])
... 
Component A, 2
Component B, 1
Component C, 1

collections.Counter将返回字典 vihh 单词及其出现

于 2014-11-18T02:17:38.100 回答
0

Pass the list/generator expression of names to a collections.Counter object.

于 2014-11-18T01:56:07.763 回答
0

浏览问题和组件并计算它们。

# dictionary where we will hold results of counting of componets
count_result = {}

# we search for issues we are interested in
issues = jira.search_issues("project = PROJECT_KEY", maxResults=100)
for issue in issues:
    # in case there is more components we iterate through them all
    # and count them in count_result dictionary
    for component in [c.name for c in issue.fields.components]:
        if count_result.get(component):
            # if component already exists in count_result dictionary
            count_result[component] += 1
        else:
            # if component doesn't exists in count_result dictionary
            count_result[component] = 1

# print out of result
for name,value in count_result.items():
    print "%s, %d" % (name, value)
于 2015-02-26T11:47:48.283 回答