To save several proxy URLs in JSON, use an array:

[
  "http://192.0.2.10:8080",
  "http://192.0.2.20:3128",
  "http://192.0.2.30:8080"
]

Each item is one endpoint, including its protocol. For a pool of public HTTP candidates, the HTTP proxy list supplies addresses to format as these URLs. Serializing a Python list with json.dumps naturally produces this structure.

Repeating the member name http several times in one object is unreliable. JSON’s interoperability guidance calls for unique names, and Python’s normal decoder keeps the last value for a repeated name. Another decoder can behave differently; none should be expected to interpret repeated keys as a proxy pool.

The saved array is a pool format, not the proxies argument for one Requests call. Select an endpoint, then construct the destination-scheme map that request needs. Storage can preserve every candidate without pretending the HTTP client accepts a list where it expects one proxy URL.

Allakkat attuumassuteqartut