微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

缺少元素 - 帮助 json python3

如何解决缺少元素 - 帮助 json python3

我是 Python 新手,使用 python3 显示气象站的数据 我遇到的问题是,在我得到更换站之前,它曾经完美地工作。

我发现了问题

在发送的天气数据中有 3 个字段(不确定名称是否正确)但它们是

lightning_strike_last_distance 

lightning_strike_last_distance_msg 

lightning_strike_last_epoch 

在我的新站中,这些田地完全消失了,因为自从我得到新站以来就没有闪电

因此,站点显示不会解析天气数据,因为这些字段不存在。

如何让程序检查这些字段/元素或任何正确的名称,如果它们在那里像往常一样解析它们

但如果他们不在那里,请跳过这些并进入下一部分

这是相关的代码部分

lightning_strike_last_distance = forecast_json["current_conditions"]["lightning_strike_last_distance"]
lightning1 = lightning_strike_last_distance*0.621371 #Convert kph to mph
data.lightning_strike_last_distance = "{0:.2f} miles".format(lightning1)

lightning_strike_last_epoch = forecast_json["current_conditions"]["lightning_strike_last_epoch"]
data.lightning_strike_last_epoch = time.strftime("%d-%m-%Y %H:%M:%s",time.localtime(lightning_strike_last_epoch))

如何修复它以便程序在缺少这 3 个元素/部分时跳过它们?

解决方法

尝试以下模式:

lightning_strike_last_distance = forecast_json["current_conditions"]["lightning_strike_last_distance"] if "lightning_strike_last_distance" in forecast_json["current_conditions"] else None

如果存在,则将 Lightning_strike_last_distance 设置为值,如果不存在,则将其设置为 None。 对所有其他作业重复该模式。

要快速测试,请尝试:

data = {"a":{"b":1,},}
valueB = data["a"]["b"] if "b" in data["a"] else None
valueC = data["a"]["c"] if "c" in data["a"] else None
print (valueB)
print (valueC)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。