Python flask-如何从JSON get请求获取参数

Python flask-如何从JSON get请求获取参数,python,json,flask,Python,Json,Flask,我有一个客户端api,它发出以下GET请求: “GET/tasks/5fe7eabd-842e-40d2-849e-409655e0891d”{%22task%22:%22hello%22,%22url%22:%22/tasks/5fe7eabd-842e-40d2-849e-409655e0891d%22}&=141177229617 HTTP/1.1“200- 做 显示它是 ImmutableMultiDict([(“{”任务“:“你好”,“url:”/tasks/5fe7eabd-842e

我有一个客户端api,它发出以下GET请求:

“GET/tasks/5fe7eabd-842e-40d2-849e-409655e0891d”{%22task%22:%22hello%22,%22url%22:%22/tasks/5fe7eabd-842e-40d2-849e-409655e0891d%22}&=141177229617 HTTP/1.1“200-

显示它是

ImmutableMultiDict([(“{”任务“:“你好”,“url:”/tasks/5fe7eabd-842e-40d2-849e-409655e0891d“}”,u“,(“,”u'141177229617”))

若要获取“任务”值,请执行以下操作:

  request.args.getlist('task')
我得到的是
[]
而不是
hello
。关于如何从中找出hello的任何想法?

使用,您应该能够使用
request.args.get('key','default')
获取所需的参数

request.args.get('task', None)

忽略这里的
request.args
;这里没有表单编码的查询参数

改为使用拆分缓存断路器(
&
),解码URL引用并将结果提供给
json.loads()

演示:

request.args.get('task',None)
request.args.get('task')
返回值
None
not
hello
request.args.get('task', None)
from urllib import unquote
from flask import json

data = json.loads(unquote(request.query_string.partition('&')[0]))
task = data.get('task')
>>> request.query_string
'{%22task%22:%22hello%22,%22url%22:%22/tasks/5fe7eabd-842e-40d2-849e-409655e0891d%22}&_=1411772296171'
>>> from urllib import unquote
>>> from flask import json
>>> unquote(request.query_string.partition('&')[0])
'{"task":"hello","url":"/tasks/5fe7eabd-842e-40d2-849e-409655e0891d"}'
>>> json.loads(unquote(request.query_string.partition('&')[0]))
{u'url': u'/tasks/5fe7eabd-842e-40d2-849e-409655e0891d', u'task': u'hello'}