ValueError: Cannot convert <JIRA Status: name='Close', id='6'> to Excel
ValueError: Cannot convert <JIRA Status: name='Close', id='6'> to Excel
我正在尝试每月从 JIRA 自动执行服务台报告,从 JIRA API 获取详细信息,例如:
1.票号(钥匙)
2.总结
三、说明
4.一些自定义字段(如组织)
5.创建日期
6.更新日期
七、状态
8. 优先级
我正在使用 python JIRA 和 openpyxl 库来处理 jira 函数并将报告写入 excel sheet(计划将此 运行 稍后在一个月的特定时间通过 cronjob)
我面临的问题是我能够获得 1 到 6 的值,但卡在 7 和 8。
原因是我期待值,例如:
- 状态 - 'Close' 或 'Waiting for Customer' 等
但我得到的是:name='Close', id='6'
- 我期望的优先级 - 'Low' 或 'High
但我得到的是:name='Low', id='4'
因此,当代码尝试写入 excel 时,它会抛出如下错误:
in _bind_value
raise ValueError("Cannot convert {0!r} to Excel".format(value))
ValueError: Cannot convert <JIRA Priority: name='Low', id='4'> to Excel
in _bind_value
raise ValueError("Cannot convert {0!r} to Excel".format(value))
ValueError: Cannot convert <JIRA Status: name='Close', id='6'> to Excel
这是我目前拥有的代码示例(相当简单):
issues_in_project = jira.search_issues('project = ASD AND assignee in (membersOf(jira-users)))
for issue in issues_in_project:
key_list.append(issue.key)
status_list.append(issue.fields.status)
priority_list.append(issue.fields.priority)
for key in key_list:
ws.cell(row=key_row, column=start_column).value = key
key_row += 1
for status in status_list:
ws.cell(row=status_row, column=start_column+1).value = status
status_row += 1
for priority in priority_list:
ws.cell(row=priority_row+1,column=start_column+2).value = priority
priority_row+=1
作为票号的键值收到正常。
有没有办法通过 JIRA API 只获取值,比如 for ex for Status: Close 和 for Priority: Low 并避免 id 值进入(如上所示)与我真正的值打算得到?
问题上的一些属性是对象,例如priority
和status
。请注意错误消息提到以下内容:
<JIRA Priority: name='Low', id='4'>
和
<JIRA Status: name='Close', id='6'>
这些是属性的字符串表示。他们告诉你他们的类型是什么(Priority
或 Status
)并且他们都有某些属性,例如 name
和 id
.
name
属性是您想要的,因此您需要像这样在 status
和 priority
对象上访问它:
ws.cell(row=status_row, column=start_column+1).value = status.name
和
ws.cell(row=priority_row+1,column=start_column+2).value = priority.name
在最后使用.name
,如下面的代码所示。这将仅从值中检索名称部分。
for status in status_list:
ws.cell(row=status_row, column=start_column+1).value = status.name
status_row += 1
for priority in priority_list:
ws.cell(row=priority_row+1,column=start_column+2).value = priority.name
priority_row+=1
我正在尝试每月从 JIRA 自动执行服务台报告,从 JIRA API 获取详细信息,例如: 1.票号(钥匙) 2.总结 三、说明 4.一些自定义字段(如组织) 5.创建日期 6.更新日期 七、状态 8. 优先级
我正在使用 python JIRA 和 openpyxl 库来处理 jira 函数并将报告写入 excel sheet(计划将此 运行 稍后在一个月的特定时间通过 cronjob)
我面临的问题是我能够获得 1 到 6 的值,但卡在 7 和 8。 原因是我期待值,例如:
- 状态 - 'Close' 或 'Waiting for Customer' 等
但我得到的是:name='Close', id='6'
- 我期望的优先级 - 'Low' 或 'High
但我得到的是:name='Low', id='4'
因此,当代码尝试写入 excel 时,它会抛出如下错误:
in _bind_value
raise ValueError("Cannot convert {0!r} to Excel".format(value))
ValueError: Cannot convert <JIRA Priority: name='Low', id='4'> to Excel
in _bind_value
raise ValueError("Cannot convert {0!r} to Excel".format(value))
ValueError: Cannot convert <JIRA Status: name='Close', id='6'> to Excel
这是我目前拥有的代码示例(相当简单):
issues_in_project = jira.search_issues('project = ASD AND assignee in (membersOf(jira-users)))
for issue in issues_in_project:
key_list.append(issue.key)
status_list.append(issue.fields.status)
priority_list.append(issue.fields.priority)
for key in key_list:
ws.cell(row=key_row, column=start_column).value = key
key_row += 1
for status in status_list:
ws.cell(row=status_row, column=start_column+1).value = status
status_row += 1
for priority in priority_list:
ws.cell(row=priority_row+1,column=start_column+2).value = priority
priority_row+=1
作为票号的键值收到正常。
有没有办法通过 JIRA API 只获取值,比如 for ex for Status: Close 和 for Priority: Low 并避免 id 值进入(如上所示)与我真正的值打算得到?
问题上的一些属性是对象,例如priority
和status
。请注意错误消息提到以下内容:
<JIRA Priority: name='Low', id='4'>
和
<JIRA Status: name='Close', id='6'>
这些是属性的字符串表示。他们告诉你他们的类型是什么(Priority
或 Status
)并且他们都有某些属性,例如 name
和 id
.
name
属性是您想要的,因此您需要像这样在 status
和 priority
对象上访问它:
ws.cell(row=status_row, column=start_column+1).value = status.name
和
ws.cell(row=priority_row+1,column=start_column+2).value = priority.name
在最后使用.name
,如下面的代码所示。这将仅从值中检索名称部分。
for status in status_list:
ws.cell(row=status_row, column=start_column+1).value = status.name
status_row += 1
for priority in priority_list:
ws.cell(row=priority_row+1,column=start_column+2).value = priority.name
priority_row+=1