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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dict url的dict在Python中为post请求编码了params?相关的知识,希望对你有一定的参考价值。

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天 - 没有人能够提供帮助。也许这样的事情是个坏主意?我不知道。

答案

如何在字典中显式:

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"

以上是关于dict url的dict在Python中为post请求编码了params?的主要内容,如果未能解决你的问题,请参考以下文章

在 C++ 中为 Tensorflow 模型定义 feed_dict

python 字典dict和列表list的读取速度问题, range合并

dict python的URL查询参数

在 Django QuerySet.values 调用中为 dict 键起别名

functools.wraps 返回 dict 类型的 __dict__ 而不是 mappingproxy

为啥 python dict.update() 不返回对象?