Trevor正在使用带有重复键的网站的python请求来指定多个值。问题是,JSON和Python字典不允许重复键,因此只有其中一个键可以通过。
## 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)
网络链接:
答案 0 :(得分:9)
您可以通过以下方式合成有效负载:
payload = [
('fname', 'homer'), ('lname', 'simpson'),
('favefood', 'raw donuts'), ('favefood', 'free donuts'),
]
rtt = requests.post("http://httpbin.org/post", data=payload)
但是如果你的情况允许,我更喜欢在列表中使用所有'favefoood'POST一个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)