我正在从下面的代码中获取每个JIRA问题的FixVersion值,格式如下,然后我尝试在python中使用append方法来追加该值,但没有得到所需的结果
for version in issue["fields"]["fixVersions"]:
cacheData = json.dumps(version)
jsonToPython = json.loads(cacheData)
#lines = jsonToPython.items()
if jsonToPython['name'][:8] == "Clignra ":
Fixversionmatch = re.findall(r"(\d+\.\d+)\.\d+\.\d+", jsonToPython['name'])
match = Fixversionmatch[0]
print match
for i in range(match):
allModules.append(i)
print allModules
从上面的代码我得到下面的错误
for i in range(match):
TypeError: range() integer end argument expected, got unicode.
如果我删除下面的代码,只做打印匹配
for i in range(match):
allModules.append(i)
print allModules
然后我得到下面的输出 删除并获取无unicode后:
Processing TTPT-2
1.4
2.4
2.5
Processing TTPT-1
2.4
我想达到的效果如下
Processing TTPT-2
[1.4, 1.4, 1.5]
Processing TTPT-1
[1.4]
正如我在评论中所说,您遇到的错误是由于^{} 返回字符串列表,而^{} 需要整数参数。然而,要获得你想要达到的目标,你需要把你的捕获变成一个列表,比如:
根据您的问题,这应该打印:
['4.4', '4.4', '4.5']
(对于下一个模块,依此类推……)如果您希望将它们作为纯浮点,可以在附加到fix_versions
列表时进行转换:fix_versions.append(float(version_match[0]))
还有,你为什么要这样做的任何特殊原因:
什么?这将产生一个相等的结构,这样您就可以完全忽略它,直接在
version
上执行匹配,即:相关问题 更多 >
编程相关推荐