← 返回题库
初级

实现标准化错误响应

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
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-iot/state_00/devices.csv").read()
    devs = pd.read_csv(StringIO(devs_csv))
    def error_response(code, error_code, message, details=None):
        resp = {'code': code, 'error': {'code': error_code, 'message': message}}
        if details: resp['error']['details'] = details
        return resp
    cases = [
        (404, 'DEVICE_NOT_FOUND', 'Device DEV099 not found', None),
        (400, 'MISSING_FIELD', 'timestamp is required', {'field':'timestamp'}),
        (429, 'RATE_LIMIT', 'Upload rate limit exceeded', {'retry_after':5}),
        (503, 'SERVICE_UNAVAILABLE', 'timeseries_db circuit open', None),
    ]
    for code,ec,msg,details in cases:
        r = error_response(code, ec, msg, details)
        print(f"HTTP {code}: {json.dumps(r, ensure_ascii=False)}")

示例

输入
solve()
期望输出
HTTP 404: {"code": 404, "error": {"code": "DEVICE_NOT_FOUND", "message": "Device DEV099 not found"}}
HTTP 400: {"code": 400, "error": {"code": "MISSING_FIELD", "message": "timestamp is required", "details": {"field": "timestamp"}}}
HTTP 429: {"code": 429, "error": {"code": "RATE_LIMIT", "message": "Upload rate limit exceeded", "details": {"retry_after": 5}}}
HTTP 503: {"code": 503, "error": {"code": "SERVICE_UNAVAILABLE", "message": "timeseries_db circuit open"}}
Python 代码 🔒 登录后使用
🔒

登录后即可练习

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