← 返回题库
中级

处理网关批量上报中的部分失败

未完成
中级参考 代码结构已给出,请填写 ____ 处
def solve():
    from pyodide.http import open_url
    from io import StringIO
    import pandas as pd, json
    devs_csv = open_url(____).read()
    st_csv = open_url(____).read()
    devs = pd.read_csv(StringIO(____))
    st = pd.read_csv(StringIO(____))
    valid_ids = set(____)
    ranges = {r['____']:(____) for _,r in st.iterrows()}
    def process_batch(____):
        p = json.loads(____)
        success = []; failed = []
        for item in p.get(____):
            did = item.get(____)
            if did not in valid_ids:
                failed.append(____)
                continue
            errors = []
            for abbrev,metric in [(____),(____)]:
                val = item.get(____)
                if val is not None and metric in ranges:
                    lo,hi = ranges[metric]
                    if not (____): errors.append(____)
            if errors: failed.append(____)
            else: success.append(____)
        return {'____':success,'____':failed}
    payload = '____'
    result = process_batch(____)
    print("____" + str(____))
    print("____" + str(____))

示例

输入
solve()
期望输出
success: ['ARD-002']
failed: [{'device_id': 'ARD-999', 'reason': 'unknown_device'}, {'device_id': 'ARD-001', 'reason': 'temperature_out_of_range'}]
Python 代码 🔒 登录后使用
🔒

登录后即可练习

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