Quiero obtener el valor de pred poniendo el valor de node1 y node2:
ESTA MI ARRAY DE DATOS
prediction_data =[ { "node1": 0, "node2": 1, "pred": 0}, { "node1": 0, "node2": 476, "pred":0.352956 }, { "node1": 0, "node2": 494, "pred":0.769988 }, { "node1": 1, "node2": 505, "pred":0.463901 }, { "node1": 9, "node2": 68 , "pred":1.238807}, ]ESTO LO HE PROBADO, soy nuevo en APIs
@app.get("/data/") async def get_all_predictions(skip: int = 0, limit: int = 10): return prediction_data[skip : skip + limit] @app.get("/data/{node1,node2}") async def getPredOfN1andN2(node1,node2): if (node1 in prediction_data.node1) and (node2 in prediction_data.node2): result = prediction_data[pred] return resultpor ejemplo, quiero escribir 0 y 1 y obtener como resultado pred = 0
Puede filtrar una lista utilizando la función de filter integrada:
async def getPredOfN1andN2(node1: int, node2: int): matching = list(filter(lambda x: x['node1'] == node1 and x['node2'] == node2, prediction_data)) return matching[0]['pred'] if matching else None Si es posible tener múltiples coincidencias, suelte el [0] y simplemente devuelva la lista completa en su lugar.