如何在python中修改这个数据结构

时间:2015-04-07 05:27:08

标签: python

我在Python中有以下结构。

{
  "TimeSeries": [{
    "Values": [
      [1428278400000.0, 44.44],
      [1428282000000.0, 46.15],
      [1428285600000.0, 38.46],
      [1428289200000.0, 47.62],
      [1428292800000.0, 35.29],
      [1428296400000.0, 40.0],
      [1428300000000.0, 33.33],
      [1428303600000.0, 43.48],
      [1428307200000.0, 44.44],
      [1428310800000.0, 40.0],
      [1428314400000.0, 47.22],
      [1428318000000.0, 37.93],
      [1428321600000.0, 45.45],
      [1428325200000.0, 46.15],
      [1428328800000.0, 42.86],
      [1428332400000.0, 44.83],
      [1428336000000.0, 47.37],
      [1428339600000.0, 40.0],
      [1428343200000.0, 38.46],
      [1428346800000.0, 47.06],
      [1428350400000.0, 42.31],
      [1428354000000.0, 50.0],
      [1428357600000.0, 47.62],
      [1428361200000.0, 42.86],
      [1428364800000.0, 0.0]
    ],
    "name": "Server2"
  }, {
    "Values": [
      [1428278400000.0, 55.56],
      [1428282000000.0, 53.85],
      [1428285600000.0, 61.54],
      [1428289200000.0, 52.38],
      [1428292800000.0, 64.71],
      [1428296400000.0, 60.0],
      [1428300000000.0, 66.67],
      [1428303600000.0, 56.52],
      [1428307200000.0, 55.56],
      [1428310800000.0, 60.0],
      [1428314400000.0, 52.78],
      [1428318000000.0, 62.07],
      [1428321600000.0, 54.55],
      [1428325200000.0, 53.85],
      [1428328800000.0, 57.14],
      [1428332400000.0, 55.17],
      [1428336000000.0, 52.63],
      [1428339600000.0, 60.0],
      [1428343200000.0, 61.54],
      [1428346800000.0, 52.94],
      [1428350400000.0, 57.69],
      [1428354000000.0, 50.0],
      [1428357600000.0, 52.38],
      [1428361200000.0, 57.14],
      [1428364800000.0, 0.0]
    ],
    "name": "Server1"
  }],
  "dates": [1428278400000.0, 1428282000000.0, 1428285600000.0, 1428289200000.0, 1428292800000.0, 1428296400000.0, 1428300000000.0, 1428303600000.0, 1428307200000.0, 1428310800000.0, 1428314400000.0, 1428318000000.0, 1428321600000.0, 1428325200000.0, 1428328800000.0, 1428332400000.0, 1428336000000.0, 1428339600000.0, 1428343200000.0, 1428346800000.0, 1428350400000.0, 1428354000000.0, 1428357600000.0, 1428361200000.0, 1428364800000.0]
}

其中TimeSeries是包含纪元日期和值的值字典列表,dates是已排序的纪元日期列表。现在我想删除server2server1中的最后一个值,因为它基本上为零,然后删除最后一个相应的日期。

所以最终的结构变成了。

{
  "TimeSeries": [{
    "Values": [
      [1428278400000.0, 44.44],
      [1428282000000.0, 46.15],
      [1428285600000.0, 38.46],
      [1428289200000.0, 47.62],
      [1428292800000.0, 35.29],
      [1428296400000.0, 40.0],
      [1428300000000.0, 33.33],
      [1428303600000.0, 43.48],
      [1428307200000.0, 44.44],
      [1428310800000.0, 40.0],
      [1428314400000.0, 47.22],
      [1428318000000.0, 37.93],
      [1428321600000.0, 45.45],
      [1428325200000.0, 46.15],
      [1428328800000.0, 42.86],
      [1428332400000.0, 44.83],
      [1428336000000.0, 47.37],
      [1428339600000.0, 40.0],
      [1428343200000.0, 38.46],
      [1428346800000.0, 47.06],
      [1428350400000.0, 42.31],
      [1428354000000.0, 50.0],
      [1428357600000.0, 47.62],
      [1428361200000.0, 42.86]
    ],
    "name": "Server2"
  }, {
    "Values": [
      [1428278400000.0, 55.56],
      [1428282000000.0, 53.85],
      [1428285600000.0, 61.54],
      [1428289200000.0, 52.38],
      [1428292800000.0, 64.71],
      [1428296400000.0, 60.0],
      [1428300000000.0, 66.67],
      [1428303600000.0, 56.52],
      [1428307200000.0, 55.56],
      [1428310800000.0, 60.0],
      [1428314400000.0, 52.78],
      [1428318000000.0, 62.07],
      [1428321600000.0, 54.55],
      [1428325200000.0, 53.85],
      [1428328800000.0, 57.14],
      [1428332400000.0, 55.17],
      [1428336000000.0, 52.63],
      [1428339600000.0, 60.0],
      [1428343200000.0, 61.54],
      [1428346800000.0, 52.94],
      [1428350400000.0, 57.69],
      [1428354000000.0, 50.0],
      [1428357600000.0, 52.38],
      [1428361200000.0, 57.14]
    ],
    "name": "Server1"
  }],
  "dates": [1428278400000.0, 1428282000000.0, 1428285600000.0, 1428289200000.0, 1428292800000.0, 1428296400000.0, 1428300000000.0, 1428303600000.0, 1428307200000.0, 1428310800000.0, 1428314400000.0, 1428318000000.0, 1428321600000.0, 1428325200000.0, 1428328800000.0, 1428332400000.0, 1428336000000.0, 1428339600000.0, 1428343200000.0, 1428346800000.0, 1428350400000.0, 1428354000000.0, 1428357600000.0, 1428361200000.0]
}

如何在python中实现这一点。

2 个答案:

答案 0 :(得分:0)

只需弹出列表的最后一项:

for t in my_data['TimeSeries']:
    date, _ = t['Values'].pop()
my_data['dates'].remove(date)

这将更新原始my_data。我假设date对于列表中的最后一项是相同的。

答案 1 :(得分:0)

从列表中删除最后一个值

 _list = _list[0:len(_list)-1]

其中_list可以在其​​他一些数据结构中埋葬......

 crazyData['yatta'][42]['foo']['here is my list'] = crazyData['yatta'][42]['yatta']['here is my list'][0:len(crazyData['yatta'][42]['yatta']['here is my list'])-1]

^我知道你也喜欢使用滚动条。