← 返回题库
初级

解析气象站综合上报数据

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
def solve():
    from pyodide.http import open_url
    from io import StringIO
    import pandas as pd, json
    devs_csv = open_url("https://data.zuihe.com/dbd/ms-greenfarm/state_00/devices.csv").read()
    devs = pd.read_csv(StringIO(devs_csv))
    WEATHER_FIELDS = ['air_temp','air_humidity','wind_speed','wind_dir','rainfall','solar_rad','co2_ppm']
    def parse_weather(payload_str):
        p = json.loads(payload_str)
        result = {'device_id':p['device_id'],'timestamp':p['timestamp'],'readings':{}}
        for field in WEATHER_FIELDS:
            result['readings'][field] = p.get(field, None)
        return result
    payload = '{"device_id":"WS-001","timestamp":1748736001,"zone":"A","air_temp":26.5,"air_humidity":65.0,"wind_speed":3.2,"wind_dir":"NE","rainfall":0.0,"solar_rad":680.0,"co2_ppm":420}'
    r = parse_weather(payload)
    print("Weather station: " + r['device_id'])
    for k, v in r['readings'].items():
        status = "(missing)" if v is None else ""
        print("  " + k + "=" + str(v) + status)

示例

输入
solve()
期望输出
Weather station: WS-001
  air_temp=26.5
  air_humidity=65.0
  wind_speed=3.2
  wind_dir=NE
  rainfall=0.0
  solar_rad=680.0
  co2_ppm=420
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码