#python #list #dynamic
#python #Список #динамический
Вопрос:
Возникли проблемы с использованием списка для динамической переменной…первый и последний элементы в списке передаются с дополнительными символами. Я новичок в python, поэтому надеюсь, что это легко исправить…
symbols=['ALXN','AMAT','AMD','AMGN','AKAM']
print(symbols[0])
print(symbols[1])
print(symbols[2])
print(symbols[3])
print(symbols[4])
while 1:
day_bars_url = '{}/day?symbols={}amp;limit=6'.format(config.BARS_URL, symbols)
r2 = requests.get(day_bars_url, headers=config.HEADERS)
datadaily = r2.json()
for symbol in datadaily:
print("CREATING DAY BAR CSV FOR STOCK: " symbol)
Вывод выглядит так:
ALXN
AMAT
AMD
AMGN
AKAM
CREATING DAY BAR CSV FOR STOCK: 'AKAM']
CREATING DAY BAR CSV FOR STOCK: 'AMAT'
CREATING DAY BAR CSV FOR STOCK: 'AMD'
CREATING DAY BAR CSV FOR STOCK: 'AMGN'
CREATING DAY BAR CSV FOR STOCK: ['ALXN'
Хотите, чтобы вывод был:
ALXN
AMAT
AMD
AMGN
AKAM
CREATING DAY BAR CSV FOR STOCK: AKAM
CREATING DAY BAR CSV FOR STOCK: AMAT
CREATING DAY BAR CSV FOR STOCK: AMD
CREATING DAY BAR CSV FOR STOCK: AMGN
CREATING DAY BAR CSV FOR STOCK: ALXN
Комментарии:
1. Вы пытаетесь передать список Python в API через querystring. Мы не знаем, что это за API, но вы, вероятно, захотите сделать что-то вроде
.format(config.BARS_URL, ",".join(symbols))
.
Ответ №1:
Проблема: глядя на ваш код, кажется, что вы вызываете:
day_bars_url = '{}/day?symbols={}amp;limit=6'.format(config.BARS_URL, symbols)
таким образом, чтобы ваш symbols
параметр выглядел как
?symbols=['ALXN','AMAT','AMD','AMGN','AKAM']
подразумевая, что вы неправильно получили параметры ( ['ALXN'
например).
Решение: вы можете решить эту проблему, преобразовав свой список в строку перед использованием:
symbols_text = ','.join(symbols)
day_bars_url = '{}/day?symbols={}amp;limit=6'.format(config.BARS_URL, symbols_text)
Таким образом, join()
будет создана строка с вашими символами с запятой между ними:
?symbols=ALXN,AMAT,AMD,AMGN,AKAM
Надеюсь, этот ответ был полезен 😉
Комментарии:
1. Рад слышать! Затем вы можете выбрать его в качестве ответа, чтобы оказать поддержку и закрыть тему 😉
Ответ №2:
Вы передаете список непосредственно в строке
day_bars_url = '{}/day?symbols={}amp;limit=6'.format(config.BARS_URL, symbols)
вместо этого вы должны передать
day_bars_url = '{}/day?symbols={}amp;limit=6'.format(config.BARS_URL, ",".join(symbols))