jira-python: updating issue version field gives 'TypeError: <object> is not JSON serializable error
jira-python: updating issue version field gives 'TypeError: <object> is not JSON serializable error
我正在尝试使用 jira-python.
更新基本上是版本字段的自定义字段
我可以毫不费力地获取项目的版本集,找到要设置的正确版本,但实际上我遇到的问题是更新此自定义版本字段。
以下是一些相关代码:
pl = jira.project('PL')
versions = jira.project_versions(pl)
# assume the function below returns list of issues I want to update
issues = query_resolved_issues()
for i in issues:
# assume this function selects the right version in versions
update_version = get_right_version(i, versions)
i.update(customfield_10303=update_version)
更新行出现错误:
File "/usr/local/lib/python2.7/site-packages/jira/resources.py", line 352, in update
super(Issue, self).update(async=async, jira=jira, fields=data)
File "/usr/local/lib/python2.7/site-packages/jira/resources.py", line 148, in update
data = json.dumps(data)
File "/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 243, in dumps
return _default_encoder.encode(obj)
File "/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py", line 207, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py", line 270, in iterencode
return _iterencode(o, 0)
File "/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py", line 184, in default
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: <JIRA Version: name=u'IT79 - 6/11/15', id=u'12902'> is not JSON serializable
我确保存储在自定义字段中的值应该是版本对象本身(就像我在 JIRA 上的一个问题上手动设置发布版本并在这种情况下获取 customfield_10303 的值我 return 与我在更新期间尝试将对象设置为相同的对象类型。有人有想法吗?
基于 How do you set the fixVersion field using jira-python 应该是这样的:
i.update(fields={ 'customfield_10303' : [{'id': update_version['id']}] })
我正在尝试使用 jira-python.
更新基本上是版本字段的自定义字段我可以毫不费力地获取项目的版本集,找到要设置的正确版本,但实际上我遇到的问题是更新此自定义版本字段。
以下是一些相关代码:
pl = jira.project('PL')
versions = jira.project_versions(pl)
# assume the function below returns list of issues I want to update
issues = query_resolved_issues()
for i in issues:
# assume this function selects the right version in versions
update_version = get_right_version(i, versions)
i.update(customfield_10303=update_version)
更新行出现错误:
File "/usr/local/lib/python2.7/site-packages/jira/resources.py", line 352, in update
super(Issue, self).update(async=async, jira=jira, fields=data)
File "/usr/local/lib/python2.7/site-packages/jira/resources.py", line 148, in update
data = json.dumps(data)
File "/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 243, in dumps
return _default_encoder.encode(obj)
File "/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py", line 207, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py", line 270, in iterencode
return _iterencode(o, 0)
File "/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py", line 184, in default
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: <JIRA Version: name=u'IT79 - 6/11/15', id=u'12902'> is not JSON serializable
我确保存储在自定义字段中的值应该是版本对象本身(就像我在 JIRA 上的一个问题上手动设置发布版本并在这种情况下获取 customfield_10303 的值我 return 与我在更新期间尝试将对象设置为相同的对象类型。有人有想法吗?
基于 How do you set the fixVersion field using jira-python 应该是这样的:
i.update(fields={ 'customfield_10303' : [{'id': update_version['id']}] })