我有以下设置
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"])}
返回引脚状态
{
"green": 0,
"red": 0
}
不幸的是,上面的代码是硬编码的。如何通过循环或序列化或其他方式获得所需的json响应?
答案 0 :(得分:1)
不完全确定你要求的是什么,但是在这里dictionary comprehension要克服你的回归词中的硬编码键:
return {color:GPIO.input(pin) for color, pin in LEDS.items()}
对LEDS.items()
进行迭代可以为LEDS
中的一对提供关键字和值,这就是在结果字典中创建每个新对所需的内容。