首页 > 解决方案 > 如何将列表元素插入 URL

问题描述

我正在尝试发出 API 请求。它是从算法交易的数据提供商 Tiingo API 获取股票价格和交易量。在下面的示例中,它正在寻找股票代码 AAPL 和 SPY 的最新价格/交易量。我想知道python中是否有一种方法可以将列表中的字符串插入到url中。

headers = {
    'Content-Type': 'application/json'
}
requestResponse = requests.get(
    "https://api.tiingo.com/iex/?tickers=aapl,spy&token=APIKEY", headers=headers)
print(requestResponse.json())

假设我有一个代码列表:

tickers = ['A', 'AA', 'AA-W', 'AAAB']

我想以以下格式将它们放在 url 引用中(小型大写字母并在 'tickers=' 之后用逗号分隔):

headers = {
    'Content-Type': 'application/json'
}
requestResponse = requests.get(
    "https://api.tiingo.com/iex/?tickers=a,aa,aa-w,aaab&token=APIKEY", headers=headers)
print(requestResponse.json())

由于我要输入很多代码,全部输入不是很可行,所以上面是一个例子。我已经尝试过 python 格式,但我无法让它工作。

标签: pythonjsonlistapiformat

解决方案


如果您有代码列表,您可以使用它str.join来创建一个字符串以添加到您的查询中

>>> tickers = ['A', 'AA', 'AA-W', 'AAAB']
>>> 'https://api.tiingo.com/iex/?tickers={}&token=APIKEY'.format(','.join(tickers))
'https://api.tiingo.com/iex/?tickers=A,AA,AA-W,AAAB&token=APIKEY'

所以要进行get查询

requestResponse = requests.get(
    'https://api.tiingo.com/iex/?tickers={}&token=APIKEY'.format(','.join(tickers)), headers=headers)

如果它们必须是小写的,你可以在你的str.join

>>> ','.join(s.lower() for s in tickers)
'a,aa,aa-w,aaab'

推荐阅读