gpt4 book ai didi

python - 处理 HTTP post 中的重复键以指定多个值

转载 作者:太空狗 更新时间:2023-10-29 20:56:08 25 4
gpt4 key购买 nike

背景

  • python 2.7
  • 请求模块
  • 带有重复键的 http post 以指定多个值

问题

Trevor 正在对一个网站使用 python 请求,该网站采用重复键来指定多个值。问题是,JSON 和 Python 字典不允许重复键,因此只有一个键通过。

目标

  • 目标是使用 python 请求创建一个 HTTP post,其中包含 POST 名称-值对中重复名称的重复键。

失败的尝试

## sample code
payload = {'fname': 'homer', 'lname': 'simpson'
, 'favefood': 'raw donuts'
, 'favefood': 'free donuts'
, 'favefood': 'cold donuts'
, 'favefood': 'hot donuts'
}
rtt = requests.post("http://httpbin.org/post", data=payload)

另见

网页链接:

问题

  • Trevor 如何使用 python 请求完成此任务?

最佳答案

您可以通过这种方式组合有效载荷:

payload = [
('fname', 'homer'), ('lname', 'simpson'),
('favefood', 'raw donuts'), ('favefood', 'free donuts'),
]
rtt = requests.post("http://httpbin.org/post", data=payload)

但如果您的情况允许,我更喜欢在列表中发布一个包含所有“favefoood”的 JSON:

payload = {'fname': 'homer', 'lname': 'simpson', 
'favefood': ['raw donuts', 'free donuts']
}
# 'json' param is supported from requests v2.4.2
rtt = requests.post("http://httpbin.org/post", json=payload)

或者如果 JSON 不是首选,将所有“favefood”组合成一个字符串(谨慎选择分隔符):

payload = {'fname': 'homer', 'lname': 'simpson',
'favefood': '|'.join(['raw donuts', 'free donuts']
}
rtt = requests.post("http://httpbin.org/post", data=payload)

关于python - 处理 HTTP post 中的重复键以指定多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27116424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com