如何解决缺少元素 - 帮助 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 举报,一经查实,本站将立刻删除。