I am trying to retreive worklog entries from Jira Service Management Cloud in python by using the jira-python library.
Everything works fine, except getting the comment from each worklog. The documentation is quite vague on this.
My code currently looks like this:
jira = JIRA(server, basic_auth=(email,token)) # define date filter startDate = datetime.date(2024, 2, 1) endDate = datetime.date(2024, 2, 27) #define jql to filter issues jql = "project in (XY) AND issuetype in ('[System] Incident', '[System] Service request') AND status = Closed AND resolutiondate >= {} AND resolutiondate <= {}".format(startDate, endDate) #incremental fetch of issues and storage into issues_all pos = 0; batch = 100; issues_all = [] while True: issues_batch = jira.search_issues(jql_str=jql, startAt=pos, maxResults=batch, fields=['worklog','customfield_10202','customfield_10198','customfield_10191']) if issues_batch == []: break else: issues_all += issues_batch pos += batch with open('jiraExport.csv', 'w', newline='', encoding='utf-8') as file: writer = csv.writer(file, delimiter=";") fields = ["Issue", "Issue ID","Warranty Basis","Warranty","Warranty Reason","Worklog ID", "Author Name", "Author Email","Date", "Time Spent", "Description"] writer.writerow(fields) for issue in issues_all: current_issue = jira.issue(issue) worklogs = current_issue.fields.worklog.worklogs for worklog in worklogs: worklog_fields = [] worklog_fields.append(current_issue.key) worklog_fields.append(worklog.issueId) worklog_fields.append(current_issue.fields.customfield_10202) worklog_fields.append(current_issue.fields.customfield_10198) worklog_fields.append(current_issue.fields.customfield_10191) worklog_fields.append(worklog.id) worklog_fields.append(worklog.author.displayName) worklog_fields.append(worklog.author.emailAddress) worklog_fields.append(functions.datetime_to_date(worklog.started)) worklog_fields.append(functions.seconds_to_industryHours(worklog.timeSpentSeconds)) worklog_fields.append(worklog.comment) <----- writer.writerow(worklog_fields)
I found some stuff which referenced worklog.comment should work, but I always get the following error, when running my code:
Traceback (most recent call last):
File "C:\Users\xy\AppData\Local\Programs\Python\Python312\Lib\site-packages\jira\resources.py", line 193, in __getattr__
return self[item] # type: ignore
~~~~^^^^^^
TypeError: 'Worklog' object is not subscriptable
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "d:\Development\Projects\Jira Interface\main.py", line 58, in <module>
worklog_fields.append(worklog.comment)
^^^^^^^^^^^^^^^
File "C:\Users\xy\AppData\Local\Programs\Python\Python312\Lib\site-packages\jira\resources.py", line 198, in __getattr__
raise AttributeError(
AttributeError: <class 'jira.resources.Worklog'> object has no attribute 'comment' ('Worklog' object is not subscriptable)
Any ideas how to get the comment of each worklog?
Thanks for your reply. Obviously I checked this beforehand, but the documentation was quite limited.
But.. I figured it out in the meantime. The code is working, but I had a worklog in my project that had no comment. Therefore the worklog object had no "Comment" attribute.
By checking for the attribute, my code is now running:
if hasattr(worklog, 'comment') and worklog.raw['comment']:
print("Worklog comment: ", worklog.raw['comment'])
else:
print("Worklog has an empty comment or no comment attribute.")
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.