如何将 GPIO 列表序列化为 json?

How can serialize a GPIO list to json?

我有以下设置

LEDS = {"green": 16, "red": 18}

@app.route('/leds/', methods=["GET"])
def api_leds_state():
    return {"green": GPIO.input(LEDS["green"]), "red": GPIO.input(LEDS["red"])}

哪个 returns 引脚状态

{
    "green": 0,
    "red": 0
}

不幸的是,上面的代码是硬编码的。我怎样才能通过循环或序列化或其他方式获得所需的 json 响应?

不太确定这就是您要的,但这里有一个 dictionary comprehension 可以克服 return 字典中的硬编码键:

return {color:GPIO.input(pin) for color, pin in LEDS.items()}

迭代 LEDS.items() 为您提供 LEDS 中一对的键和值,这是您在结果字典中创建每个新对所需要的。