【发布时间】:2019-02-08 13:38:36
【问题描述】:
我有以下结构:
[
{
"name": "a-v1",
"date": "2018-05-08T08:40:35.000Z"
},
{
"name": "a-v2",
"date": "2018-05-20T08:40:35.000Z"
},
{
"name": "a-v3",
"date": "2018-05-22T08:40:35.000Z"
},
{
"name": "b-v1",
"date": "2018-02-08T08:40:35.000Z"
},
{
"name": "b-v2",
"date": "2018-05-08T08:40:35.000Z"
},
{
"name": "b-v3",
"date": "2018-05-10T08:40:35.000Z"
},
{
"name": "c-v1",
"date": "2018-10-08T08:40:35.000Z"
},
{
"name": "c-v2",
"date": "2018-11-08T08:40:35.000Z"
},
{
"name": "d-v1",
"date": "2018-08-08T08:40:35.000Z"
}
]
每个name 都结合了类型和版本(例如a-v1 中,类型中有a,v1 是版本)。
我如何创建所有name 的列表,它们不是最新的 2 个版本?
在我们的例子中,输出将是:
a-v1
b-v1
知道如何在 Python 中做到这一点吗?我一直在考虑计算子字符串。例如:使用- 作为分隔符,并计算我找到字符串左侧的次数(aa,b,c)。这可以在 Python 中实现吗?有更好的想法吗?
【问题讨论】:
-
我认为您提出的方法没有任何问题。
-
输出还应该包含 a-v3,d-v1,... ?为什么只有 a-v1 和 b-v1?
-
或者您可以使用诸如限制大小的优先级队列之类的东西,我认为这可能是矫枉过正。
-
@newbie 我有 3 个版本的
a,我只想保留 2 个最新版本,所以输出将是a-v1(这是最旧的版本)。与b相同。至于c和d,我没有超过2个版本,所以输出对他们来说是空的。 -
您是按
v1之类的后缀排序,还是也考虑日期?你需要检查 v-somehting 的顺序是否在正确的日期?
标签: python json string dictionary