如何通过请求传递URL查询字符串参数

时间:2017-11-06 17:15:47

标签: python python-requests

我需要GET的URL看起来像这样:

https://example.com//report.php?file=MyFile&params=query=QueryMyFile^SomeParam=x^SomeOtherParam=y^AnotherOne=z

我想用requests来传递参数;类似的东西:

base_url = 'https://example.com//report.php'
params = 
{ 'SomeParam': x,
  'SomeOtherParam': y,
  'AnotherOne': z
}

my_file = requests.get(base_url, params=params)

我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:2)

他们在一个查询中接受了所有查询" params"。

这是发送params的非标准方式,因此,requests没有内置的方法来执行此操作。您必须手动加入'^'字符的键和值。

答案 1 :(得分:0)

params数据的结构是json样式,我也会尝试这样做:

    import json
    import requests

    params = { 'SomeParam': x,
    'SomeOtherParam': y,
    'AnotherOne': z }

    params = json.dumps(params, separators=('^', '='))
    params = params[1:-1] #remove first and last curly brackets
    my_file = requests.get(base_url+params)

会有类似的事情。

答案 2 :(得分:-1)

来自请求docs ..

payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.get('http://httpbin.org/get', params=payload)