通过在 fastAPI 中从 json 数组中放入同一组的其他 2 个参数来获取值
get value by putting 2 other parameters of the same set from json array in fastAPI
我想通过把node1和node2的值来获取pred的值:
这是我的数据数组
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},
]
这是我尝试过的,我是 API 新手
- 这给了我所有数据
@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 result
例如,我想写 0 和 1 并得到结果 pred = 0
您可以使用内置的 filter
函数过滤列表:
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
如果可能有多个匹配项,请删除 [0]
并只 return 整个列表。
我想通过把node1和node2的值来获取pred的值:
这是我的数据数组
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},
]
这是我尝试过的,我是 API 新手
- 这给了我所有数据
@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 result
例如,我想写 0 和 1 并得到结果 pred = 0
您可以使用内置的 filter
函数过滤列表:
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
如果可能有多个匹配项,请删除 [0]
并只 return 整个列表。