如何在 FastAPI 中对同一数据元素应用多种方法
How to apply multiple methods on the same data element in FastAPI
我想对作为我的 API 端点 (FastAPI) 的参数接收的字符串变量执行以下处理,如下所示,我有 30 个函数需要应用到字符串变量。
我有点迷茫,真的不知道该怎么做,我应该了解的任何提示或概念都可以帮助解决问题。
代码:
def func1(data):
return True
def func2(data):
return True
def func3(data):
return True
...
def func30(data):
return True
@app.get("/process/{data}")
def process(data):
# Apply all the methods on the data variable
return response ```
----------
thank you
您可以将 map
与函数列表一起使用并将其转换为列表,因为 map
是延迟计算的。如果不需要,您可以忽略该列表。
def apply(data, functions):
return list(map(lambda f: f(data), functions))
from functools import reduce
from typing import Callable, Iterable, Any
def apply(funcs, data):
return reduce(lambda tmp, func: func(tmp), funcs, data)
funcs = [
lambda x: x + 'a',
lambda x: x + 'b',
lambda x: x + 'c',
lambda x: x + 'd',
]
print(apply(funcs, '')) # Result is 'abcd'
我想对作为我的 API 端点 (FastAPI) 的参数接收的字符串变量执行以下处理,如下所示,我有 30 个函数需要应用到字符串变量。 我有点迷茫,真的不知道该怎么做,我应该了解的任何提示或概念都可以帮助解决问题。
代码:
def func1(data):
return True
def func2(data):
return True
def func3(data):
return True
...
def func30(data):
return True
@app.get("/process/{data}")
def process(data):
# Apply all the methods on the data variable
return response ```
----------
thank you
您可以将 map
与函数列表一起使用并将其转换为列表,因为 map
是延迟计算的。如果不需要,您可以忽略该列表。
def apply(data, functions):
return list(map(lambda f: f(data), functions))
from functools import reduce
from typing import Callable, Iterable, Any
def apply(funcs, data):
return reduce(lambda tmp, func: func(tmp), funcs, data)
funcs = [
lambda x: x + 'a',
lambda x: x + 'b',
lambda x: x + 'c',
lambda x: x + 'd',
]
print(apply(funcs, '')) # Result is 'abcd'