使用Python从JSON获取最后一个元素

使用Python从JSON获取最后一个元素,python,json,Python,Json,我有以下结构的文件: { "function": "ComAl_Set_nad_crtl_xcall_state", "timeStamp": 1488500329974, "Param1": "SIG_NAD_XCALL_ATTEMPTS_COUNT", "Value1": "2" } 这些JSON文件是由程序中的一些函数创建的。但是我在获取这些文件的最后一个值(Value1)时遇到了一个问题。目前,这是我用于从文件中获取数据的代码: def get_json

我有以下结构的文件:

{
    "function": "ComAl_Set_nad_crtl_xcall_state",
    "timeStamp": 1488500329974,
    "Param1": "SIG_NAD_XCALL_ATTEMPTS_COUNT",
    "Value1": "2"
}
这些JSON文件是由程序中的一些函数创建的。但是我在获取这些文件的最后一个值(Value1)时遇到了一个问题。目前,这是我用于从文件中获取数据的代码:

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
这是获取Value1的代码:

@app.route('/stub/comal/getSignal/ComAl_Set_nad_crtl_xcall_requests', methods=['GET'])
    def get_nad_crtl_xcall_requests():
        file_name = "ComAl_Set_nad_crtl_xcall_requests.out"
        json_stub = self.stubManager.get_json_from_stub(file_name)
        return MapEcallRequests().tech_to_business(json_stub[-1]["Value1"])

更具体地说,我想用另一种获取Value1的方法替换json_存根[-1][“Value1”]。问题是,有时这些文件无法写入,因此我希望以不同的方式获取Value1,并在Value1不存在时发出错误消息,以避免我的应用程序在该值不存在时崩溃。有办法吗?谢谢。

您可以检查密钥是否存在(也可以检查长度是否正确):

if len(json_stub) > 0 and json_stub[-1].get('Value1') is not None:
    value1_node = json_stub[-1]('Value1')
else:
    # 'Value1' key does not exist