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

Python 如何通过请求传递URL查询字符串参数,python,python-requests,Python,Python Requests,我需要从中获取的URL如下所示: https://example.com//report.php?file=MyFile¶ms=query=QueryMyFile^SomeParam=x^ SomeOtherParam=y^另一个=z 我想使用请求传递参数;大致如下: base_url = 'https://example.com//report.php' params = { 'SomeParam': x, 'SomeOtherParam': y, 'AnotherOne':

我需要从中获取的URL如下所示:

https://example.com//report.php?file=MyFile¶ms=query=QueryMyFile^SomeParam=x^ SomeOtherParam=y^另一个=z

我想使用
请求
传递参数;大致如下:

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

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

我怎样才能做到这一点呢?

他们在一个名为“params”的查询中接受了所有这些参数

这是一种发送参数的非标准方式,因此,对于
请求
,没有内置的方法来发送参数。您必须手动使用
'^'
字符连接键和值

来自请求


您的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)

这样就行了。

嗯,太糟糕了。使用
urllib
怎么样?这里甚至
urllib.parse.urlencode()
都没有帮助,因为您不能指定不同的分隔符。责怪设计
report.php
的人。你应该能够以你需要的格式将url中的参数组合在一起,然后使用请求“获取”该url。@这已经是我正在做的;我在寻找一种更正式/标准的方式。
    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)