Проблема с отправкой нескольких значений для одного и того же ключа с использованием запросов в Python - PullRequest
0 голосов
/ 28 мая 2020

Я пытаюсь передать несколько значений для одного и того же ключа в запросе GET, используя запросы в python. Я пробовал то, что считал правильным синтаксисом, но ключ по-прежнему дважды форматируется в URL-адресе.

В следующем коде я ищу? Tickers = ethusd, ethbt c в URL-адрес, но я получаю? tickers = ethusd? tickers = ethbt c вместо этого:

import requests
import json
import psycopg2
from datetime import datetime    
payload = {'tickers':['ethusd','ethbtc'], 'startDate': startdate, 'endDate': enddate, 'resampleFreq': resamplefreq, 'token':token}
    requestResponse = requests.get("https:mysite",params=payload, headers=headers)

Форматированный URL-адрес из запросов заканчивается как:

'https://mysite?tickers=ethusd&tickers=ethbtc&startDate=2020-05-26&endDate=2020-05-26&resampleFreq=1day&token=token'

вместо? Tickers = ethusd, ethbt c.

1 Ответ

0 голосов
/ 28 мая 2020

В URL нельзя использовать запятую. Значит, вы должны закодировать url. Я думаю, это немного сложно. Даже если вы можете достичь своей цели, вам следует снова закодировать url. Почему бы вам не преобразовать массив в строку перед установкой переменной полезной нагрузки?

aa = ['ethusd','ethbtc']
payload = {'tickers': "-".join(aa), 'startDate': startdate, 'endDate': enddate, 'resampleFreq': resamplefreq, 'token':token}
requestResponse = requests.get("https:mysite",params=payload, headers=headers)

И вы можете получить это значение после преобразования в строку с помощью метода разделения.

...