我对 Python 真的很陌生,这个问题可能太基本了,我目前似乎无法在网上找到任何答案。我一直在尝试遍历包含 9 个股票代码的列表,下面称为“符号”,以从 YahooFinancials 检索每个代码的资产负债表、现金流量表和损益表。一直for symbol in ecommerce():用于创建循环,但收到下面的 TypeError。 from yahoofinancials import YahooFinancials import pandas as pd import requests import numpy as np from datetime import datetime ecommerce = ['CTRP', 'EBAY', 'GRUB', 'BABA', 'JD', 'EXPE', 'AMZN', 'BKNG', 'MPNGF'] for symbol in ecommerce(): df_income_statement = scrape_table('https://finance.yahoo.com/quote/' + symbol + '/financials?p=' + symbol) df_income_statement df_cash_flow = scrape_table('https://finance.yahoo.com/quote/' + symbol + '/cash-flow?p=' + symbol) df_cash_flow balance_sheet_url = 'https://finance.yahoo.com/quote/' + symbol + '/balance-sheet?p=' + symbol df_balance_sheet = scrape_table(balance_sheet_url)预期结果:资产负债表为“CTRP”、“EBAY”、“GRUB”、“BABA”、“JD”、“EXPE”、“AMZN”、“BKNG”、“MPNGF”的数据框TypeError: 'list' object is not callablefrom yahoofinancials import YahooFinancials import pandas as pd import requests import numpy as np from datetime import datetimeecommerce = ['CTRP', 'EBAY', 'GRUB', 'BABA', 'JD', 'EXPE', 'AMZN', 'BKNG', 'MPNGF']for symbol in ecommerce(): df_income_statement = scrape_table('https://finance.yahoo.com/quote/' + symbol + '/financials?p=' + symbol) df_income_statement
1 回答

慕码人2483693
TA贡献1860条经验 获得超9个赞
如果您编写ecommerce()Python 假设您想要调用由 name 引用的函数(可调用)ecommerce,但您想要做的是迭代列表(电子商务包含一个列表)。
所以你只需要删除()。您可以从以下内容开始:
for symbol in ecommerce:
income_statement_dataframes= pd.read_html('https://finance.yahoo.com/quote/' + symbol + '/financials?p=' + symbol)
使用此代码income_statement_dataframes应包含数据框列表。url 引用的网页上的每个 html 表一个数据帧。您只需要检查它是哪一张表。如果你幸运的话,你已经可以通过这种方式使用它了。如果您在列表的元素中找不到可用形式的表格(例如,如果 html 有点邪恶),您可以查看 BeautifulSoup(导入 bs4)。
添加回答
举报
0/150
提交
取消