初级
验证设备上报必填字段
未完成
初级参考
完整示例代码供参考,建议自己理解后重新输入
def solve():
from pyodide.http import open_url
from io import StringIO
import pandas as pd, json
payloads_csv = open_url("https://data.zuihe.com/dbd/ms-iot/state_01/raw_payloads.csv").read()
payloads = pd.read_csv(StringIO(payloads_csv))
REQUIRED = ['device_id', 'timestamp', 'readings']
def validate_required(payload_str):
try:
payload = json.loads(payload_str)
except: return False, ['invalid_json']
missing = [f for f in REQUIRED if f not in payload]
return len(missing)==0, missing
for _, row in payloads.iterrows():
ok, missing = validate_required(row['payload'])
label = 'OK' if ok else f'MISSING:{missing}'
print(f"id={row['id']} dev={row['device_id']}: {label}")
示例
输入
solve()
期望输出
id=1 dev=DEV001: OK id=2 dev=DEV003: OK id=3 dev=DEV004: OK id=4 dev=DEV001: MISSING:['timestamp'] id=5 dev=DEV099: OK id=6 dev=DEV002: OK id=7 dev=DEV005: OK id=8 dev=DEV001: OK id=9 dev=DEV007: OK id=10 dev=DEV008: OK id=11 dev=DEV009: OK id=12 dev=DEV009: OK id=13 dev=DEV002: OK id=14 dev=DEV001: OK id=15 dev=DEV007: OK id=16 dev=DEV005: OK id=17 dev=DEV001: OK id=18 dev=DEV007: OK id=19 dev=DEV007: OK id=20 dev=DEV009: OK id=21 dev=DEV005: OK id=22 dev=DEV007: OK id=23 dev=DEV001: OK id=24 dev=DEV002: OK id=25 dev=DEV003: OK id=26 dev=DEV002: OK id=27 dev=DEV003: OK id=28 dev=DEV005: OK id=29 dev=DEV003: OK id=30 dev=DEV001: OK
👑
升级 VIP
解锁全部题目,畅通无阻地学习
- ✓ 解锁全部训练包所有题目
- ✓ 查看完整参考代码和提示
- ✓ 浏览器内直接运行 Python 代码
- ✓ 自动批改 + 进度追踪
30天
¥18
1年
¥99
2年
¥158
3年
¥199