Python - циклический просмотр набора элементов в списке - PullRequest
0 голосов
/ 19 июня 2019

У меня есть следующий запрос, который извлекает некоторые данные из 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 голосов
/ 19 июня 2019
df.to_csv('/Desktop/file.csv', mode='a')

Режим по умолчанию для .to_csv - запись. Вы должны изменить его, чтобы добавить. Если вы хотите сделать это таким образом.

Лучшим решением было бы создать целый фрейм данных, а затем сохранить его в требуемом файле

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')
0 голосов
/ 19 июня 2019

Вы перезаписываете фрейм данных в каждом цикле df.to_csv('/Desktop/file.csv'). Каждый раз вы записываете новый проект в файл и стираете старый.

Вы должны определить результат перед началом итерации по проектам. В противном случае вы можете создать один CSV-файл для каждого проекта.

Также было бы более эффективно создавать и сохранять фрейм данных в конце цикла верхнего уровня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...