用deepseek写了利用akshare查询数据并输出股票的部分信息,但是一直报错股票不存在
代码如下:
import akshare as ak
import pandas as pd
def get_stock_data(stock_code):
# 初始化结果字典
result = {
"股票代码": stock_code,
"所属行业": "N/A",
"ROE(%)": "N/A",
"营收增长率(%)": "N/A",
"资产负债率(%)": "N/A",
"市盈率(PE)": "N/A",
"市净率(PB)": "N/A"
}
try:
# 获取股票基本信息(所属行业)
market = "sh" if stock_code.startswith("6") else "sz"
stock_info = ak.stock_individual_info_em(symbol=f"{market}{stock_code}")
industry = stock_info.loc[stock_info['item'] == '所属行业', 'value'].values[0]
result["所属行业"] = industry
# 获取财务指标(ROE、资产负债率、营收增长率)
indicator = ak.stock_financial_analysis_indicator(symbol=stock_code)
latest_report = indicator.iloc[0]
result["ROE(%)"] = round(latest_report['净资产收益率'], 1)
result["资产负债率(%)"] = round(latest_report['资产负债率'], 1)
# 获取利润表计算营收增长率
income = ak.stock_profit_sheet_by_yearly_em(symbol=stock_code)
if len(income) >= 2:
current_revenue = income.iloc[0]['营业收入']
previous_revenue = income.iloc[1]['营业收入']
if previous_revenue != 0:
growth_rate = (current_revenue - previous_revenue) / previous_revenue * 100
result["营收增长率(%)"] = round(growth_rate, 1)
# 获取估值指标(PE、PB)
market_data = ak.stock_a_lg_indicator(symbol=stock_code)
latest_data = market_data.iloc[0]
result["市盈率(PE)"] = round(latest_data['市盈率'], 1)
result["市净率(PB)"] = round(latest_data['市净率'], 2)
except Exception as e:
print(f"获取数据时发生错误: {str(e)}")
return result
if __name__ == "__main__":
stock_code = input("请输入股票代码(例如:600335):")
stock_data = get_stock_data(stock_code)
print("\n股票数据:")
for k, v in stock_data.items():
print(f"{k:15}: {v}")
# 注意:
# 1. 需要安装最新版akshare:pip install akshare --upgrade
# 2. 数据来自公开市场接口,可能有15分钟延迟
# 3. 财务指标基于最新定期报告
# 4. 部分数据需要计算得出,可能与券商数据存在微小差异
生成不了结果