Py学习  »  Python

Python处理复盘系统中,sqlite3数据库中的json热点和行业字段

一场孤独的自我修行 • 3 月前 • 264 次点击  


数据是个宝,研究少烦恼

挖的深,看的远,找规律

做笔记,练盘感,多总结

★★★★博文原创不易,我的博文不需要打赏,也不需要知识付费,可以白嫖学习小技巧。喜欢的老铁可以点赞+收藏分享+置顶,小红牛在此表示感谢。★★

Python股票热点数据复盘系统5.0

股票热点数据分类统计系统3.0(padans+matplotlib+sqlite3)

模拟炒股K线训练系统2.0(threading+mplfinance)

股票自选股公告系统1.0

(简易版)Ex写通达信自定义序列+外部数据1.0

使用Excel制作通达信自定义外部数据,安排!!!

关于小红牛软件,不再对外出售的正式说明!!

小红牛软件用户使用说明书(2)

龙虎榜小红牛软件帮助说明书

关于小红牛,通达信自定义数据指标的说明文档

通达信自定义数据系统,自定义游资席位的增加方法

通达信历史自定义数据替换教程@signals

教你在通达信中设置,和查看15个财经网站的股票数据

通达信指标公式28:龙虎榜股票池——主力控盘度的计算方法

通达信自定义数据的制作+导入+显示+选股

Tdx#自定义数据常用的指标编写与注释

通达信实现股票联动,消息号优化探测的方法1.2

200条复盘核心及细分点(仅供参考)

股道自研自悟100条(自我+认知+心性,大成修行至无惧无惑境界)

200条关于热点和龙头股的理解(仅供参考)

龙头股Vs跟风股(杂毛)200条(仅供参考)

通达信指标公式34:避雷参考,选股前,必须优先排除有垃圾属性的股。

通达信指标公式33:严重异动提醒,计算10/30日的涨跌幅偏离值

针对原数据库,对其中存储的原始数据中的“申万行业”和“热点”字段进行更新。需要解析每个记录中的data字段(JSON字符串),提取出“申万行业”和“热点”的值,按照规则处理(申万行业取“--”右边,热点取“:”左边),然后更新回数据库。

1.以下是一个独立的 Python 脚本,用于修改现有数据库(fp_analysis.db),将 raw_data 表中每条记录的 热点 和 申万行业 字段按照指定规则进行处理:脚本会逐条读取数据,解析 JSON,修改后更新回数据库。
热点:取“:”左侧的内容(去除空格)
申万行业:取“--”右侧的内容(去除空格)

2.注意事项:

脚本会修改原始数据,建议先备份数据库(可手动复制一份 fp_analysis.db 为 fp_analysis_backup.db)。如果数据库中没有 热点 或 申万行业 列,或对应值为 None,脚本会跳过该记录。
脚本仅处理字符串类型的数据,如果字段值为其他类型(如数字),则保持不变。
执行完此脚本后,后续使用程序时无需再依赖分隔符提取,因为数据库中的字段已经是标准化后的值。

完整源码如下

# -*- coding: utf-8 -*-# @Author : 小红牛# 微信公众号:gxzfp888import sqlite3import json
def update_database(db_path='fp_analysis.db'):    """    遍历数据库中的所有记录,对热点和申万行业字段进行标准化处理。    """    conn = sqlite3.connect(db_path)    cursor = conn.cursor()
    # 查询所有记录    cursor.execute("SELECT id, data FROM raw_data")    rows = cursor.fetchall()
    update_count = 0    for row_id, data_json in rows:        try:            data = json.loads(data_json)        except json.JSONDecodeError:            continue  # 数据损坏,跳过
        modified = False
        # 处理热点列(取“:”左边)        if '热点' in data and data['热点'is not None:            val = data['热点']            if isinstance(val, strand ':' in val:                new_val = val.split(':'1)[0].strip()                if new_val != val:                    data['热点'] = new_val                    modified = True
        # 处理申万行业列(取“--”右边)        if '申万行业' in data and data['申万行业'is not None:            val = data['申万行业']            if isinstance(val, strand '--' in val:                new_val = val.split('--'1)[1].strip()                if new_val != val:                    data['申万行业'] = new_val                    modified = True
        if modified:            new_data_json = json.dumps(data, ensure_ascii=False)            cursor.execute("UPDATE raw_data SET data = ? WHERE id = ?", (new_data_json, row_id))            update_count += 1
            # 每2000 条提交一次,避免事务过大            if update_count % 2000 == 0:                conn.commit()                print(f"已更新 {update_count} 条记录...")
    conn.commit()    conn.close()    print(f"数据库更新完成,共更新 {update_count} 条记录。")
if __name__ == "__main__":    # 如果数据库文件不在当前目录,请修改路径    update_database('fp_analysis.db')

温馨提示:股市有风险,投资需谨慎。本文所写内容仅供粉丝们参考使用,仅为个人研究观点表述,股友们须自己思考与分析股市。


-!! 完毕 ,感谢您的收看!!-


-------★历史博文集合★------

股软件   龙虎榜小红牛分析系统  资金大单系统 

通达信主附图指标改选股器  通达信自定义数据系统

自定义数据 其他股软   Ex系统 每日收盘数据

 通达信小技巧  tdx指标编写教程  Tdx指标公式

龙虎榜教程   游资盈亏数据  产业链上下游  股学堂

量化教程  指标回测  Python  我的股票笔记

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/193143