我如何从URL,a和b中获取值,然后将它们传递给add函数?结果应该是:{"c": x}
,其中x是a和b的总和。
代码:
op = 'add'
a = random.randint(0,10)
b = random.randint(0,10)
/%s?a=%s&b=%s' % (op, a, b)
result = res.json()
if op=='add':
assert a+b == result['c']
功能:
def add():
import json
return json.dumps({'c': ???})
答案 0 :(得分:1)
使用urlparse
,这是为这些任务设计的标准库模块!
urlparse.parse_qs(qs [,keep_blank_values [,strict_parsing]])
解析作为字符串参数给出的查询字符串(类型的数据) 应用程序/ x-WWW窗体-urlencoded)。数据作为字典返回。 字典键是唯一的查询变量名称和值 是每个名称的值列表。
可选参数keep_blank_values是一个指示是否的标志 百分比编码查询中的空白值应视为空白 字符串。真值表示空格应保留为 空白字符串。默认的false值表示空值 被忽视并被视为不包括在内。
可选参数strict_parsing是一个标志,指示要执行的操作 解析错误。如果为false(默认值),则错误是静默的 忽略。如果为true,则错误会引发ValueError异常。
示例:
>>> urlparse.parse_qs('a=1&b=1') # raw query string
{'a': ['1'], 'b': ['1']}
请注意,您也可以使用urlparse
中的其他函数将整个URL解析为其组件(包括查询字符串)。
答案 1 :(得分:0)
from urlparse import parse_qs, urlparse
import json
def add(a, b):
return json.dumps({'c': a+b})
url = 'add?a=1&b=1'
q_dict = parse_qs(urlparse(url).query, keep_blank_values=True)
# q_dict = {'a': ['1'], 'b': ['1']}
print add(a=q_dict['a'][0], b=q_dict['b'][0])
答案 2 :(得分:0)
我想出了如何解决我的问题!我感谢所有的帮助,但这里提供的解决方案都没有适用于我的问题。这完全是我的错,因为我的问题完全不同。