以下是我的清单:
>>> issue_search
[<JIRA Issue: key=u'NEC-1519', id=u'991356'>, <JIRA Issue: key=u'NEC-1516', id=u'991344'>, <JIRA Issue: key=u'NEC-1518', id=u'990463'>]
>>>
我使用以下内容:
issue_string = ','.join(map(str, issue_search))
但输出是:
NEC-1519, NEC-1516, NEC-1518
我对输出感到困惑。如何只显示key
?如何以字符串格式获取其他文本?
答案 0 :(得分:2)
您在列表中看到的是每个对象的__repr__
method返回的值。如果您需要这些值,请将列表映射到repr
而不是str
:
issue_string = ','.join(map(repr, issue_search))
以下是decimal.Decimal
的演示:
>>> from decimal import Decimal
>>> lst = [Decimal('1.2'), Decimal('3.4'), Decimal('5.6')]
>>> lst
[Decimal('1.2'), Decimal('3.4'), Decimal('5.6')]
>>> print ','.join(map(str, lst))
1.2,3.4,5.6
>>> print ','.join(map(repr, lst))
Decimal('1.2'),Decimal('3.4'),Decimal('5.6')
>>>
答案 1 :(得分:0)
在加入str
之前,您正在对issue_search
内的对象进行调用str
。显然,str
对“JIRA问题”的调用只会产生密钥。
__str__
的返回值由对象的repr
方法确定,该方法可能以“JIRA问题”类型的描述方式定义。如果您无法更改方法,您也可以在对象上调用>>> ', '.join(map(lambda x: '{} ({})'.format(x.key, x.id), issue_search))
'NEC-1519 (991356), NEC-1516 (991344), NEC-1518 (990463)'
,或者指定自定义格式函数:
{{1}}