dict url的dict在Python中为post请求编码了params?

问题描述 投票:0回答:1
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 -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个回答
0
投票

如何在字典中显式:

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"
© www.soinside.com 2019 - 2024. All rights reserved.