我的JSON中有以下结构:
{
"function": "ComAl_Set_nad_crtl_xcall_state",
"timeStamp": 1488516897797,
"Param1": "SIG_NAD_CRTL_XCALL_STATE",
"Value1": "8"
},
{
"function": "ComAl_Set_nad_crtl_xcall_state",
"timeStamp": 1488516912217,
"Param1": "SIG_NAD_CRTL_XCALL_STATE",
"Value1": "10"
},
我通过使用以下方法创建此json:
def get_json_from_stub(self, file_name):
def jsonize_stub(raw_data):
end = raw_data.rfind(",")
parsed_data = "[" + raw_data[:end] + "]"
return json.loads(parsed_data.replace("\00", ""))
command = "'cat " + self.stub_path + file_name + "'"
content = self.send_ssh_command(command)
json_stub = jsonize_stub(content)
return json_stub
到目前为止,我只需要JSON中的最后一个值1,我得到这样的结果:
def get_last_element(self, json_stub, value='Value1'):
last_element_from_json = json_stub[-1].get(value)
if len(json_stub) > 0 and last_element_from_json is not None:
return last_element_from_json
else:
pass
我的问题是我是否可以获得前一个值1(例如在我的JSON value1:8和value1:10中)因为现在,我使用json_stub [-1]得到这个值,它总是给我最后一个值?感谢。
答案 0 :(得分:2)
使用-2
从最后获得第二个。
json_stub[-2]
在Python中,负索引指向列表从右到左的元素,而不是默认的从左到右。 -1
代表最后一个元素(从左到右),-2
代表最后一个元素(从左到右)等。