我想通过getlist()将一个列表作为参数传递给flask。
在这里阅读:
REST API Best practice: How to accept list of parameter values as input
你能帮忙找出这个简单的代码为什么不能读取列表参数(skip_id)吗?

def api_insight(path):
    import pdb
    skip_id = request.args.getlist('skip_id', type=None)
    print( 'skip_id', skip_id)
    pdb.set_trace()

curl http://myexample.com/<mypath>/?&skip_id=ENSG00000100030,ENSG00000112062
# empty list


curl http://myexample.com/<mypath>/?&skip_id=[ENSG00000100030,ENSG00000112062]
# empty list

curl http://myexample.com/<mypath>/?&skip_id=ENSG00000100030&skip_id=ENSG00000
# only first value is read in list

最佳答案

最后一种方法应该有效。我刚在浏览器里试过。

http://localhost:5000/api?skip_id=ENSG000001000301&skip_id=ENSG00000

给我
['ENSG00000100030', 'ENSG00000']

然而,使用curl,您将遇到&字符的麻烦,因为它将任务放在后台(至少在Linux上是这样)。你可以用卷发
curl -X GET -G http://localhost:5000/api?skip_id -d skip_id=ENSG00000100030 -d skip_id=ENSG00000

得到你描述的结果。

10-05 21:00