python - 使用 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_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_stub[-1]["Value1"]。问题是有时这些文件不会被写入,所以我想以不同的方式获取 Value1 并在 Value1 不存在的情况下引发错误消息,只是为了避免我的应用程序在值不存在的情况下崩溃.有办法吗?谢谢。

最佳答案

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

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  

关于python - 使用 Python 从 JSON 中获取最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49032834/

相关文章:

python - OpenCV KMeans(K-Means)python输出簇数问题

python - 如何改进我的CNN?高且恒定的验证错误

python - 当我在 python 中发送 post 请求时...我该怎么做

css - 实验性 chrome 历史扩展

java - JsonGetter 给出空值

python - 在 swift 和 python 中从相同的返回类型获得不同的结果

python - FFmpeg 仅在某些运行时返回 'invalid argument',即使它是相同的代码

python - 如何将带有变音符号的字符串转换回 JSON

json - 将大型 JSON 数据从 android 发送到 php 服务器我可以压缩吗?

c# - (反)序列化对象的属性而不获取对象的其余部分