xiaobaidsai 2025-02-01 22:35 采纳率: 0%
浏览 31

DS生成提取股票信息代码运行失败

用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. 部分数据需要计算得出,可能与券商数据存在微小差异

生成不了结果

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2025-02-01 22:35
    关注

    以下回复引自免费微信小程序:皆我百晓生。 如问题解决,还请采纳。如仍有疑问,请回复留言或私信博主,以便获得更精准的帮助。

    问题描述:在PYTHON中使用AKSHARE进行股票数据查询,并输出相关信息,但是遇到的错误是“股票不存在代码”。

    解决方案:

    1. 首先确保你的环境已经安装了PYTHON和AKSHARE库。
    2. 使用以下代码导入所需的库:
    IMPORT AKSHARE AS AK
    
    1. 导入并初始化DATAFRAME对象:
    DF = PD.DATAFRAME()
    
    1. 对于每个股票代码(例如,“000526”),调用AK.GET_STOCK_CODE()函数获取股票信息,然后将其保存到DATAFRAME中:
    CODE = "000526"
    STOCK_CODE_DF = AK.GET_STOCK_CODE(CODE)
    
    1. 将DATAFRAME存储为一个CSV文件:
    STOCK_CODE_DF.TO_CSV("STOCK_CODE.CSV", INDEX=FALSE)
    
    1. 检查已保存的文件是否成功打开:
    IF STOCK_CODE_DF.EMPTY:
        PRINT("股票代码未找到")
    ELSE:
        PRINT(STOCK_CODE_DF)
    
    1. 如果所有的股票代码都被成功加载,则返回所有股票代码的信息,否则提示找不到相关代码。
    2. 重复上述步骤以其他股票代码尝试加载数据,检查是否存在这些代码,以便提供更精确的帮助。

    以上代码应该能够帮助你在PYTHON中解决这个问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月1日