我有一个很大的json数组,它列出了某些键值对。数组中的每个元素应如下所示:
{
"id" : "tmp3269879718695646867",
"owner" : "johndoe",
"x11-display" : ":7",
"x11-authority" : "/run/user/1676/dcv/tmp3269879718695646867.xauth",
"num-of-connections" : 0,
"creation-time" : "2019-05-15T20:05:46.170274Z",
"last-disconnection-time" : "2019-07-19T15:14:37.349168Z"
},然后,我在末尾附加一个开始方括号和一个结束方括号,以使其有效JSON。有时,数组中大约有100个元素。由于软件升级,如果用户未断开连接,则上次断开时间键不会出现在此输出上。我想做的是循环遍历数组中的每个元素,但如果上次断开连接时键不存在,则跳过整个元素。这是我到目前为止在循环中得到的:
for item in json_array:
session_details = {"owner":None, "num-of-connections":None, "last-disconnection-time":None}
session_details['owner'] = item['owner']
user = item['owner']
session_details['num-of-connections'] = item['num-of-connections']
session_details['last-disconnection-time'] = item['last-disconnection-time']
# Format date
...我想要做的是在每次循环时检查项目。如下所示:
for item in json_array:
session_details = {"owner":None, "num-of-connections":None, "last-disconnection-time":None}
session_details['owner'] = item['owner']
user = item['owner']
session_details['num-of-connections'] = item['num-of-connections']
if "last-disconnection-time" in json_array:
session_details['last-disconnection-time'] = item['last-disconnection-time']
else:
print("last-disconnection-time does not exist in this array item")
# Format date
...但是,在运行脚本时,我仍然会得到KeyError。
发布于 2020-05-28 22:29:39
您需要检查"last-disconnection-time“是否在项中。json_array是你的全部列表。item是一个字典,您想要在其中查找键是否存在。
if "last-disconnection-time" in item:https://stackoverflow.com/questions/62066527
复制相似问题