gpt4 book ai didi

python - flask-如何从JSON GET请求获取参数

转载 作者:行者123 更新时间:2023-12-03 16:19:18 24 4
gpt4 key购买 nike

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

"GET /tasks/5fe7eabd-842e-40d2-849e-409655e0891d?{%22task%22:%22hello%22,%22url%22:%22/tasks/5fe7eabd-842e-40d2-849e-409655e0891d%22}&_=1411772296171 HTTP/1.1" 200 -

在做

task = request.args
print task


显示它是

ImmutableMultiDict([('{"task":"hello","url":"/tasks/5fe7eabd-842e-40d2-849e-409655e0891d"}', u''), ('_', u'1411772296171')])

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

  request.args.getlist('task')


我得到的是 []而不是 hello。关于如何从中打招呼的任何想法?

最佳答案

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

使用request.query_string代替,拆分缓存中断器(&_=<random number>),解码URL引用并将结果提供给json.loads()

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'}

关于python - flask-如何从JSON GET请求获取参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26069714/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com