【问题标题】:Missing element - help json python3缺少元素 - 帮助 json python3
【发布时间】:2021-03-21 10:00:49
【问题描述】:

我是 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 个元素/部分,我该如何解决?

【问题讨论】:

    标签: json python-3.x new-operator missing-data


    【解决方案1】:

    尝试以下模式:

    lightning_strike_last_distance = forecast_json["current_conditions"]["lightning_strike_last_distance"] if "lightning_strike_last_distance" in forecast_json["current_conditions"] else 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)
    

    【讨论】:

      猜你喜欢
      • 2015-03-09
      • 1970-01-01
      • 2016-06-11
      • 1970-01-01
      • 2013-05-24
      • 2017-10-15
      • 2017-01-13
      • 2014-10-25
      • 2023-03-10
      相关资源
      最近更新 更多