繁体   English   中英

用于动态变量的列表——与第一个和最后一个字符串一起传递的额外字符

[英]List used for a dynamic variable -- extra characters passing with the first and last string

将列表用于动态变量时遇到问题...列表中的第一个和最后一个项目正在传递附加字符。 我是 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={}&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)

Output 看起来像:

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'

想要 output 是:

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

问题:通过查看您的代码,您似乎在调用:

day_bars_url = '{}/day?symbols={}&limit=6'.format(config.BARS_URL, symbols)

以这样一种方式,你的symbols参数看起来像

?symbols=['ALXN','AMAT','AMD','AMGN','AKAM']

暗示您错误地获取了参数(例如['ALXN' )。

解决方案:您可以通过在使用之前将列表转换为字符串来解决此问题:

symbols_text = ','.join(symbols)
day_bars_url = '{}/day?symbols={}&limit=6'.format(config.BARS_URL, symbols_text)

这样, join()将使用您的符号创建一个字符串,它们之间有一个逗号:

?symbols=ALXN,AMAT,AMD,AMGN,AKAM

希望这个答案有用;)

您直接在行中传递列表

day_bars_url = '{}/day?symbols={}&limit=6'.format(config.BARS_URL, symbols)

相反,你应该通过

day_bars_url = '{}/day?symbols={}&limit=6'.format(config.BARS_URL, ",".join(symbols))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM