Python 需要一个';对于循环';从股票组合各自的api URL获取股票组合的股息数据
我正在尝试自动解析股票投资组合的股息数据,并将股票股息值放入单个数据框表中 投资组合中每只股票的数据存储在单独的api url中 投资组合ID(用于股票——ITC、不列颠尼亚、赛诺菲)为[500875500825500674] 我想首先运行一个“for循环”来生成/连接每个特定的url(如下所示-),url的最后6位数字是它们各自的公司ID 然后,我想使用该url将各个股息表的第一行放入单个数据帧中。我用来获取单个红利数据的代码,以及我所需要的最终数据帧在所附的图像中表示 基本上,我想运行一个“for循环”来获取每个股票id的第一行“Table2”,并将其存储在单个数据帧中作为最终结果 PS-我用来获取个人股息数据的代码如下所示:Python 需要一个';对于循环';从股票组合各自的api URL获取股票组合的股息数据,python,json,pandas,api,dictionary,Python,Json,Pandas,Api,Dictionary,我正在尝试自动解析股票投资组合的股息数据,并将股票股息值放入单个数据框表中 投资组合中每只股票的数据存储在单独的api url中 投资组合ID(用于股票——ITC、不列颠尼亚、赛诺菲)为[500875500825500674] 我想首先运行一个“for循环”来生成/连接每个特定的url(如下所示-),url的最后6位数字是它们各自的公司ID 然后,我想使用该url将各个股息表的第一行放入单个数据帧中。我用来获取单个红利数据的代码,以及我所需要的最终数据帧在所附的图像中表示 基本上,我想运行一个“
url = 'https://api.bseindia.com/BseIndiaAPI/api/CorporateAction/w?scripcode=500674'
jsondata = requests.get(url, headers= {'User-Agent': 'Mozilla/5.0'}).json()
df = pd.DataFrame(jsondata['Table2'])
如果您需要
for
-loop,那么您应该使用它并用for
-loop显示代码以及它给您带来的问题
您可以对所有作品使用单个
循环
您可以使用字符串格式创建带有代码的url,并从服务器读取数据。接下来,您可以获取第一行(即使不创建DataFrame
),并将所有行附加到列表中。循环之后,您可以将此列表转换为数据帧
import requests
import pandas as pd
# --- before loop ---
headers = {'User-Agent': 'Mozilla/5.0'}
all_rows = []
# --- loop ---
for code in [500875, 500825, 500674]:
# use `f-string` of string `.format()` to create url
#url = f'https://api.bseindia.com/BseIndiaAPI/api/CorporateAction/w?scripcode={code}'
url = 'https://api.bseindia.com/BseIndiaAPI/api/CorporateAction/w?scripcode={}'.format(code)
r = requests.get(url, headers=headers)
#print(r.text) # to check error message
#print(r.status_code)
data = r.json()
first_row = data['Table2'][0] # no need to use DataFrame
#df = pd.DataFrame(data['Table2'])
#first_row = df.iloc[0]
#print(first_row)
all_rows.append(first_row)
# --- after loop ---
df_result = pd.DataFrame(all_rows)
print(df_result)
结果:
scrip_code sLongName ... Details PAYMENT_DATE
0 500875 ITC LTD. ... 10.1500 2020-09-08T00:00:00
1 500825 BRITANNIA INDUSTRIES LTD. ... 83.0000 2020-09-16T00:00:00
2 500674 Sanofi India Ltd ... 106.0000 2020-08-06T00:00:00
[3 rows x 9 columns]
如果需要<代码>进行<代码>-循环,则使用它并使用此<代码>进行<代码>-循环显示代码。您可以在一个中为循环完成所有操作。无需为
-循环创建分隔的,以连接URL。