我有一个包含不同对象的json文件,每个对象都有一个版本值,如:
"版本":[2,10,5,1]
我想根据版本值过滤对象,我只对获得范围感兴趣。实施例
获取版本>的所有对象2.5.3.10和版本< 3.0
我很感激帮助。
此致
答案 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自动完成数学运算,得爱上它:)