我正在烧瓶上构建一个python端点(我很新)。我正在向PHP发送请求(因为这是我们的大多数用户将用于发送请求的内容)。我有一个应该发送的非关联数据数组(例如'mode' => array('foo', 'bar', 'baz')
)
然而,在执行str(request.form)
时,我所得到的只是ImmutableMultiDict([('mode[1]', 'foo'), ('mode[0]', 'bar'), ('mode[2]', 'baz')])
现在从浏览stackoverflow(例如Sending array data with jquery and flask)我发现这表明我应该能够做request.form.getlist('mode[]')
之类的事情(有或没有方括号 - 取决于你的哪个问题看看这里)。但是都不起作用。
最终我找到了一个临时解决方案,如果你在将数据放入curl post字段之前对数据进行json_encode(即你'mode' => json_encode(array('foo', 'bar', 'baz'))
,那么Flask(ImmutableMultiDict([('mode', '["foo","bar","baz"]')])
)似乎可以很好地收到这些数据。
但我真的不明白为什么这个解决方案有效 - 我遇到了好运而不是任何有根据的猜测。任何人都可以解释为什么这样做或者有更好的(TM)解决方案的逻辑。
提前致谢!
答案 0 :(得分:0)
你可以这样做:
request.form.values()
这样,您只能将dict对中的值作为数组。您不需要将数据编码和解码为JSON,只是为了读取值。