← 返回题库
中级

验证传感器读数量程合法性

未完成
中级参考 代码结构已给出,请填写 ____ 处
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(____):
        try: p = json.loads(____)
        except: return ['____']
        errors = []
        readings = p.get(____)
        if fmt == '____':
            m = {'____':'____','____':'____','____':'____','____':'____'}
            readings = [{'____':full,'____':p[abbrev]} for abbrev,full in m.items() if abbrev in p]
        for r in readings:
            metric = r.get(____); val = r.get(____)
            if metric in ranges and isinstance(val,(____)):
                lo,hi = ranges[metric]
                if not (____):
                    errors.append(metric+"____"+str(____)+"____"+str(____)+"____"+str(____)+"____")
        return errors
    for _, row in payloads.head(____).iterrows():
        errs = validate_range(____)
        if errs: print("____"+str(____)+"____"+str(____)+"____"+str(____))
        else: print("____"+str(____)+"____")

示例

输入
solve()
期望输出
id=1: range_ok
id=2: range_ok
id=3 (nan): ['invalid_json']
id=4: range_ok
id=5 (out_of_range): ['invalid_json']
id=6: range_ok
id=7: range_ok
id=8: range_ok
id=9: range_ok
id=10: range_ok
id=11: range_ok
id=12: range_ok
Python 代码 🔒 登录后使用
🔒

登录后即可练习

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