🚀 AI 一键生成 joinquant 策略代码
立即体验
👉 AI 生成代码 👈

JoinQuant 查询新闻联播数据报错 "has no table 'CCTV_NEWS'" 怎么办?

joinquant | 发布时间: 2026/6/4
以下内容由 EasyQuant 生成。

问题描述

数据库'finance'没有表'CCTV_NEWS'”不存在

请问下各位大佬们,使用新闻联播文本查询的时候提示 “database 'finance' has no table 'CCTV_NEWS' ” 不存在,请问是换了字段?还是不能查了呀,还是代码有问题...

df=finance.run_query(query(finance.CCTV_NEWS).filter(finance.CCTV_NEWS.day=='2019-02-19').limit(10))
print(df)

解决方案

在 JoinQuant (聚宽) 平台上运行代码时,如果遇到 database 'finance' has no table 'CCTV_NEWS' 的报错,通常是因为该数据表已经被官方下线或移除了

报错原因分析

  1. 数据源下线:聚宽平台会不定期对数据源进行调整。CCTV_NEWS(新闻联播文本数据)可能因为版权、数据维护成本或使用率等原因,已经被官方从 finance 数据库中移除。
  2. 代码本身语法无误:您的查询代码 df=finance.run_query(query(finance.CCTV_NEWS).filter(finance.CCTV_NEWS.day=='2019-02-19').limit(10)) 在语法上是完全正确的 SQLAlchemy 查询格式。报错纯粹是因为底层数据库中找不到对应的表。

解决建议与替代方案

  1. 查阅最新数据字典:建议前往聚宽官网的「数据」->「数据字典」板块,查看当前 finance 模块下支持的所有表。目前 finance 模块主要支持深沪港通、股东信息、公司概况、财务数据等。
  2. 寻找替代的新闻/舆情数据
    • 如果您需要宏观经济数据,可以使用 macro.run_query() 查询宏观经济指标。
    • 如果您需要特定公司的公告或新闻,可以查看聚宽是否提供了其他舆情因子或公告数据集(如聚宽因子库中的情绪因子)。
  3. 外部数据接入:如果您的策略强依赖新闻联播文本进行自然语言处理(NLP)或情感分析,建议通过外部 API(如 Tushare、各类新闻 API)获取数据,然后通过聚宽的 read_file 或直接在研究环境中处理后,再应用到策略中。

正确使用 finance.run_query 的示例

为了验证您的 finance.run_query 功能正常,您可以尝试查询一个目前确实存在的表,例如查询深沪港通数据或股东信息:

from jqdata import *

# 查询恒瑞医药(600276.XSHG)的十大股东情况
q = query(finance.STK_SHAREHOLDER_TOP10).filter(
    finance.STK_SHAREHOLDER_TOP10.code == '600276.XSHG',
    finance.STK_SHAREHOLDER_TOP10.pub_date > '2015-01-01'
).limit(10)

df = finance.run_query(q)
print(df)

总之,这不是您的代码写错了,而是平台数据表发生了变动。建议调整策略的数据依赖,或向聚宽官方客服确认该数据是否转移到了其他模块(如 JQData 商业版)。