python解析版本号的列表

时间:2014-05-14 22:47:21

标签: python list python-2.7

我有一个包含不同对象的json文件,每个对象都有一个版本值,如:

"版本":[2,10,5,1]

我想根据版本值过滤对象,我只对获得范围感兴趣。实施例

获取版本>的所有对象2.5.3.10和版本< 3.0

我很感激帮助。

此致

2 个答案:

答案 0 :(得分:1)

词典排序通常不足以比较版本。你可以使用例如。来自distutils.version的LooseVersion可以进行有用的比较。

from distutils.version import LooseVersion

assert LooseVersion("10.1.1") < LooseVersion("100.1.1")

直接在列表中使用该版本有一些微妙的问题:

[1,0] < [1,0,0] == True
[1,0] == [1,0,0] == False

这应涵盖所有边缘情况:

LooseVersion(".".join(version)) > LooseVersion("2.5.3.10") and LooseVersion(".".join(version)) < LooseVersion("3.0")

答案 1 :(得分:0)

Duh,我刚注意到我能做到:

if data['version'] > [2, 5, 3, 10]:
    print "that is old"

Python自动完成数学运算,得爱上它:)