110 lines
3.2 KiB
Python
Executable File
110 lines
3.2 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
"""
|
|
检查数据库中可能的标的名称格式
|
|
"""
|
|
|
|
import sqlite3
|
|
import os
|
|
|
|
def check_all_symbols():
|
|
"""检查数据库中所有标的"""
|
|
db_path = '/Users/chufeng/.openclaw/workspace-zhaoyun/zhaoyun-data/data/database_test.db'
|
|
|
|
if not os.path.exists(db_path):
|
|
print(f"❌ 数据库不存在: {db_path}")
|
|
return []
|
|
|
|
print(f"🔍 检查数据库中的标的: {db_path}")
|
|
print("="*60)
|
|
|
|
try:
|
|
conn = sqlite3.connect(db_path)
|
|
cursor = conn.cursor()
|
|
|
|
# 检查表是否存在
|
|
cursor.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='dbbardata';")
|
|
if not cursor.fetchone():
|
|
print("❌ dbbardata 表不存在")
|
|
return []
|
|
|
|
# 获取所有标的
|
|
cursor.execute("SELECT DISTINCT symbol FROM dbbardata;")
|
|
symbols = [row[0] for row in cursor.fetchall()]
|
|
|
|
print(f"📊 数据库中有 {len(symbols)} 个标的:")
|
|
for symbol in symbols:
|
|
cursor.execute("SELECT COUNT(*) FROM dbbardata WHERE symbol = ?", (symbol,))
|
|
count = cursor.fetchone()[0]
|
|
cursor.execute("SELECT MIN(datetime), MAX(datetime) FROM dbbardata WHERE symbol = ?", (symbol,))
|
|
min_dt, max_dt = cursor.fetchone()
|
|
print(f" - {symbol}: {count} 行, {min_dt} ~ {max_dt}")
|
|
|
|
conn.close()
|
|
return symbols
|
|
|
|
except Exception as e:
|
|
print(f"❌ 查询出错: {e}")
|
|
return []
|
|
|
|
def check_510300_variants():
|
|
"""检查 510300 的各种可能格式"""
|
|
print("\n🔍 检查 510300 的各种可能格式...")
|
|
print("="*60)
|
|
|
|
variants = [
|
|
'510300.SSE',
|
|
'510300.SH',
|
|
'510300.XSHG',
|
|
'510300',
|
|
'510300.XSH',
|
|
'SH510300',
|
|
'510300.SHFE',
|
|
]
|
|
|
|
db_path = '/Users/chufeng/.openclaw/workspace-zhaoyun/zhaoyun-data/data/database_test.db'
|
|
|
|
try:
|
|
conn = sqlite3.connect(db_path)
|
|
cursor = conn.cursor()
|
|
|
|
for variant in variants:
|
|
cursor.execute("SELECT COUNT(*) FROM dbbardata WHERE symbol = ?", (variant,))
|
|
count = cursor.fetchone()[0]
|
|
if count > 0:
|
|
print(f"✅ {variant}: {count} 行数据")
|
|
else:
|
|
print(f"❌ {variant}: 0 行数据")
|
|
|
|
conn.close()
|
|
|
|
except Exception as e:
|
|
print(f"❌ 查询出错: {e}")
|
|
|
|
def main():
|
|
"""主函数"""
|
|
print("🚀 检查数据库标的格式")
|
|
print("="*60)
|
|
|
|
# 列出所有标的
|
|
symbols = check_all_symbols()
|
|
|
|
# 检查510300变体
|
|
check_510300_variants()
|
|
|
|
print("\n" + "="*60)
|
|
print("总结:")
|
|
|
|
if not symbols:
|
|
print("❌ dbbardata 表为空,没有任何数据")
|
|
print("\n📋 需要处理:")
|
|
print("1. 联系赵云将军下载 510300 数据")
|
|
print("2. 将数据转换为vn.py格式")
|
|
print("3. 配置正确的数据路径")
|
|
else:
|
|
print(f"✅ 数据库中有 {len(symbols)} 个标的")
|
|
print("请检查关羽将军使用的标的名称是否与数据库一致")
|
|
|
|
print("="*60)
|
|
|
|
if __name__ == "__main__":
|
|
main() |