【问题标题】:Dict of dict url encoded params for post request in Python?Python中发布请求的dict url编码参数的字典?
【发布时间】:2018-03-02 14:40:59
【问题描述】:
params_for_update_cat = {
    'api_key': API_KEY,
    'api_username':"ausername",
    "name": name_and_ticker,
    "color": bg_colour,
    "text_color": text_color,

    "permission": {'admins': 1,'staff': 2}
}


headers = {"Content-Type": "multipart/form-data"}

r = rq.post(url=create_cat_url, data=params, headers=headers)

所以我想要的是,上面肯定不会这样做:

  permissions[admin]=1&permissions[staff]=2 

作为参数列表的一部分。这当然应该在帖子正文中。

一些注意事项:

  • 该 api 不支持 content-type: application/json 请求标头。
  • API 预计请求会发出,因为数据来自表单。

如果我要在 curl 中执行此操作,并且这是成功的测试顺便说一句 - 它会是:

!curl -X POST "http://<mydomaingoeshere>/categories.json" /

-H "Content-Type: multipart/form-data;" /

-F "api_key=xxxxxxxxx_xxxxx" /
-F "api_username=ausername" /
-F "name=checkcheckcheck" /
-F "text_color=FFFFFF" /
-F "color=49d9e9" /
-F "permissions[admins]=1" /
-F "permissions[staff]=2"

3 天 - 没有人能够提供帮助。也许这样的事情是个坏主意?我不知道。

【问题讨论】:

    标签: python http python-requests discourse


    【解决方案1】:

    在字典中明确如何:

    params_for_update_cat = {
        'api_key': API_KEY,
        'api_username':"ausername",
        "name": name_and_ticker,
        "color": bg_colour,
        "text_color": text_color,
        "permissions[admins]": 1,
        "permissions[staff]": 2
    }
    

    这会创建一个请求,其 URL 如下所示:

    "http://example.com?...&permissions%5Badmins%5D=1&permissions%5Bstaff%5D=2"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-25
      • 1970-01-01
      • 2022-11-15
      相关资源
      最近更新 更多