首页 > 解决方案 > Pynmea2 AttributeError `NoneType` 对象没有属性 `num_sats`

问题描述

尝试创建条件语句时出现此错误。上周我尝试了很多事情来让它工作,但我尝试的一切都失败了。如果这是pynmea结节特有的,任何人都可以解释一下吗?


def parse_gps(incoming_data):

    if incoming_data.find("GGA") > 0:
        data = pynmea2.parse(incoming_data)
        print("Timestamp: %s // Lat: %s  // Lon: %s // Satellites: %s  " % (data.timestamp, data.latitude,
                                                                            data.longitude, data.num_sats))
        return data


while True:
    gps_fix = ser.readline().decode('ascii')
    gps_data = parse_gps(gps_fix)
    if gps_data.num_sats > 7:
        break
    else:
        print("No data")```


Should find a fix of satellites greater than 7 in order to gain a valid fix then break.

标签: python

解决方案


while True:
    gps_fix = ser.readline().decode('ascii')
    gps_data = parse_gps(gps_fix)
    if gps_data is not None and int(gps_data.num_sats) > 7:
        break```

After a few errors about str and int i finally managed to work out the fix.


推荐阅读