# 获取平安银行股票代码security = jqdatasdk.normalize_code('000001.XSHE')# 获取平安银行 2015 年至 2019 年的 ROE 数据roe_data = jqdatasdk.get_fundamentals(jqdatasdk.query( jqdatasdk.indicator.code, jqdatasdk.indicator.roe).filter( jqdatasdk.indicator.code == security,).order_by( # 使用 period_date 表示 ROE 数据的公布日期 jqdatasdk.indicator.period_date.desc()).limit( None), start_date='2015-01-01', end_date='2019-12-31')# 将 ROE 数据转换为 DataFrame 格式roe_data = pd.DataFrame(roe_data).set_index('pub_date')['roe']# 输出 ROE 数据print(roe_data)报错AttributeError Traceback (most recent call last)C:\Users\THUNDE~1\AppData\Local\Temp/ipykernel_13868/815225579.py in <module> 10 ).order_by( 11 # 使用 period_date 表示 ROE 数据的公布日期---> 12 jqdatasdk.indicator.period_date.desc() 13 ).limit( 14 NoneAttributeError: type object 'FinancialIndicatorDay' has no attribute 'period_date'
时间: 2024-03-14 19:49:47 浏览: 106
这个错误是由于聚宽 SDK 中的 `jqdatasdk.indicator` 模块下没有 `period_date` 这个属性所导致的。你可以将 `period_date` 改为 `day` 或者 `statDate`,这两个属性可以用来表示 ROE 数据的公布日期。修改后的代码如下:
```
import jqdatasdk
import pandas as pd
# 获取平安银行股票代码
security = jqdatasdk.normalize_code('000001.XSHE')
# 获取平安银行 2015 年至 2019 年的 ROE 数据
roe_data = jqdatasdk.get_fundamentals(jqdatasdk.query(
jqdatasdk.indicator.code,
jqdatasdk.indicator.roe).filter(
jqdatasdk.indicator.code == security,).order_by(
# 使用 day 或者 statDate 表示 ROE 数据的公布日期
jqdatasdk.indicator.day.desc()).limit(
None), start_date='2015-01-01', end_date='2019-12-31')
# 将 ROE 数据转换为 DataFrame 格式
roe_data = pd.DataFrame(roe_data).set_index('pub_date')['roe']
# 输出 ROE 数据
print(roe_data)
```
阅读全文