JSON 数组保留每一个代理条目
把多个代理 URL 存进数组,而不是重复 http 和 https 成员名。
要在 JSON 中保存多个代理 URL,请使用数组:
[
"http://192.0.2.10:8080",
"http://192.0.2.20:3128",
"http://192.0.2.30:8080"
]
每一项都是一个端点,并带有自己的协议。对于公共 HTTP 候选池,HTTP 代理列表提供可格式化为这些 URL 的地址。用 json.dumps 序列化 Python 列表,会自然地产生这种结构。
在同一个对象里重复 http 成员名并不可靠。JSON 的互操作指南要求名称唯一,而 Python 的常规解码器对重复名称保留最后一个值。其他解码器的行为可能不同;都不应指望它把重复键解释成代理池。
保存下来的数组是池的数据格式,而不是某一次 Requests 调用的 proxies 参数。先选定一个端点,再构建该请求所需的目标方案映射。存储可以保留每个候选,而不必假装 HTTP 客户端在只接受一个代理 URL 的地方能接受列表。