【问题标题】:How to pass an array of strings to fastapi in python如何在python中将字符串数组传递给fastapi
【发布时间】:2020-03-18 03:01:22
【问题描述】:

这是我制作的函数:

@app.get("/shows/")
def get_items(q: List[str] = Query(None)):
    '''
    Pass path to function.
    Returns folders and files.
    '''
    results = {}

    query_items = {"q": q}
    if query_items["q"]:
        entry = PATH + "/".join(query_items["q"])
    else:
        entry = PATH

    if os.path.isfile(entry):
        return download(entry)

    dirs = os.listdir(entry + "/")
    results["folders"] = [
        val for val in dirs if os.path.isdir(entry + "/" + val)]
    results["files"] = [val for val in dirs if
                        os.path.isfile(entry + "/" + val)]
    results["path_vars"] = query_items["q"]

    return results

想法是传递一个字符串数组,该数组实质上在函数中形成了一个文件的路径,我可以从应用程序中获取一些数组来提供文件,并在它们遍历文件夹时向该函数发送一个字符串数组。但是..我不知道如何从 python 请求之类的东西中发送参数列表。

这是我编写的示例函数。

def try_url():
    url = "http://192.168.0.16:8000/shows/"

    payload = {
        "q": ["downloads",
              "showname"]
    }
    headers = {}

    response = requests.request("GET", url, headers=headers, data=payload)

    print(response.text.encode('utf8'))

Api 甚至不接受 q 值。我错过了什么?这是遍历目录的正确方法吗?在 url 格式中,请求是这样的:

http://192.168.0.16:8000/shows/?q=downloads&q=foldername

我觉得不合适。

【问题讨论】:

    标签: python python-3.x fastapi


    【解决方案1】:

    我很笨,解决方案就是将参数传递给调用...

    payload = {
        "q" : ["downloads",
        "Brooklyn.Nine-Nine.S07E01.720p.HEVC.x265-MeGusta"]
    }
    headers = {
    }
    
    response = requests.request("GET", url, headers=headers, params = payload)
    

    在 requests.request 中添加“参数”是解决方案。

    【讨论】:

      猜你喜欢
      • 2016-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-07
      • 1970-01-01
      • 1970-01-01
      • 2017-04-05
      • 2022-12-09
      相关资源
      最近更新 更多