Python-遍历列表中的一组项目

时间:2019-06-19 09:59:52

标签: python loops

我有以下查询,这些查询从JIRA中提取了一些数据并将其保存到csv中。但是,我试图通过一系列项目进行介绍。我看到最新的项目已保存,但并非所有项目都在循环中通过。

下面是我要执行的操作:

projects = ['project_a','project_b']

for project in projects:
    issues = jira.search_issues('project= ' + project)

    result = []
    for value in issues:
        value = value
        timeSpentSeconds = i.timeSpentSeconds
        timeSpent = i.timeSpent
        updated = i.updated
        started = i.started
        author = i.author
        dict_ = {'value': value,
                     'timeSpent': timeSpent,
                     'updated': updated,
                     'started': started,
                     'author': author}

        result.append(dict_)

        df = pd.DataFrame(result)


        df.to_csv('/Desktop/file.csv')

2 个答案:

答案 0 :(得分:0)

您将在每个循环df.to_csv('/Desktop/file.csv')上覆盖数据帧。每次,您都会在文件中写入新项目,然后删除旧项目。

您应该在开始迭代项目之前定义结果。否则,您可以为每个项目创建一个csv文件。

此外,在顶层循环结束时创建和保存数据框会更有效。

答案 1 :(得分:0)

df.to_csv('/Desktop/file.csv', mode='a')

.to_csv的默认模式为write。您必须更改它才能追加。如果您想那样做。

更好的解决方案是制作整个数据框,然后将其保存到所需文件中

projects = ['project_a','project_b']

result = []

for project in projects:
    issues = jira.search_issues('project= ' + project, maxResults=False, fields="worklog")   
    for value in issues:
        for i in value.fields.worklog.worklogs:
            value = value
            timeSpentSeconds = i.timeSpentSeconds
            timeSpent = i.timeSpent
            updated = i.updated
            started = i.started
            author = i.author
            dict_ = {'value': value,
                     'timeSpent': timeSpent,
                     'updated': updated,
                     'started': started,
                     'author': author}

            result.append(dict_)

df = pd.DataFrame(result)
df.to_csv('/Desktop/file.csv')