2015-04-07 2 views
0

У меня есть следующая структура в 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 является отсортированный список дата эпохи. Теперь я хочу удалить последнее значение из server2 и , так как он по существу равен нулю, а затем удаляет последнюю соответствующую дату.

Таким образом, окончательная конструкция будет.

{ 
    "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.

+0

Вы хотите удалить все данные, которые являются по существу нулевыми или просто последними? – flycee

ответ

0

Просто палить последний пункт списка:

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

Это обновит вместо оригинального my_data. Я предположил, что date то же самое для последнего элемента в списках.

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] 

^Я знаю, что вы хотите использовать полосу прокрутки слишком.

+0

Это создает новый список, который вам нужно будет назначить обратно в структуру, 'pop()' делает то же самое, не создавая новый список. – AChampion

+0

Lol смешно, что списки python реализуют поп без толчка. Я даже не знал. – kpie

Смежные вопросы