← 返回题库
中级

验证传感器读数量程范围

未完成
中级参考 代码结构已给出,请填写 ____ 处
def solve():
    from pyodide.http import open_url
    from io import StringIO
    import pandas as pd, json
    payloads_csv = open_url(____).read()
    st_csv = open_url(____).read()
    payloads = pd.read_csv(StringIO(____))
    st = pd.read_csv(StringIO(____))
    ranges = {r['____']:(____) for _,r in st.iterrows()}
    def validate_range(____):
        errors = []
        try: payload = json.loads(____)
        except: return [(____)]
        for reading in payload.get(____):
            m = reading.get(____)
            v = reading.get(____)
            if m in ranges and isinstance(v,(____)):
                lo,hi = ranges[m]
                if not (____): errors.append((____))
        return errors
    for _, row in payloads.iterrows():
        errs = validate_range(____)
        if errs: print(____)
        else: print(____)

示例

输入
solve()
期望输出
id=1: range_ok
id=2: range_ok
id=3: [('vibration_rms', 999.9, 'out_of_range[0.0,20.0]')]
id=4: range_ok
id=5: range_ok
id=6: range_ok
id=7: range_ok
id=8: range_ok
id=9: range_ok
id=10: [('pressure', 2600.0, 'out_of_range[900.0,1100.0]')]
id=11: range_ok
id=12: range_ok
id=13: range_ok
id=14: range_ok
id=15: range_ok
id=16: range_ok
id=17: range_ok
id=18: range_ok
id=19: range_ok
id=20: range_ok
id=21: range_ok
id=22: range_ok
id=23: range_ok
id=24: range_ok
id=25: range_ok
id=26: range_ok
id=27: range_ok
id=28: range_ok
id=29: range_ok
id=30: range_ok
Python 代码 🔒 登录后使用
🔒

登录后即可练习

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