派大星我们去抓水母吧- 2024-05-04 00:13 采纳率: 25%
浏览 2

运行主程序后再选择图片执行显示如下界面,请问怎么将如图所示中下方的一些输出信息保存到数据库里呀?

请问大概要做那几步呢?🙏🏻只要那里新增了数据,就会自动把新增的数据放到数据库里

img

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-04 00:13
    关注

    引自免费微信小程序:皆我百晓生

    为了将您提供的信息保存到数据库中,我们可以遵循以下步骤:

    1. 安装必要的库:首先确保已经安装了用于与数据库交互的Python库,例如sqlite3(SQLite的内置库)或pymysql(MySQL)、psycopg2(PostgreSQL)等。这里我们使用SQLite作为示例。
    pip install sqlite3
    
    1. 创建数据库和表:我们需要创建一个数据库并在这个数据库中创建一个表来存储车牌信息。下面是一个简单的例子,展示了如何在Python中操作SQLite数据库。
    import sqlite3
    
    # 连接到SQLite数据库(如果不存在,会自动创建)
    conn = sqlite3.connect('plate_info.db')
    
    # 创建一个Cursor对象
    cursor = conn.cursor()
    
    # 定义要创建的表结构
    create_table_query = """
    CREATE TABLE IF NOT EXISTS plate_data (
        id INTEGER PRIMARY KEY,
        ote TEXT,
        license_plate TEXT,
        serial_number TEXT,
        owner TEXT,
        recording_time TEXT,
        plate_color TEXT,
        coordinates TEXT,
        confidence REAL,
        plate_info TEXT
    );
    """
    
    # 执行创建表的SQL语句
    cursor.execute(create_table_query)
    
    # 提交事务
    conn.commit()
    
    # 关闭Cursor和Connection
    cursor.close()
    conn.close()
    
    1. 读取和插入数据:当有新的车牌信息时,我们可以从给定的格式中提取数据,并将其插入到数据库中。
    def insert_new_data(ote, license_plate, serial_number, owner, recording_time, plate_color, coordinates, confidence, plate_info):
        # 连接到SQLite数据库
        conn = sqlite3.connect('plate_info.db')
        cursor = conn.cursor()
    
        # 准备插入数据的SQL语句
        insert_query = f"""
        INSERT INTO plate_data (ote, license_plate, serial_number, owner, recording_time, plate_color, coordinates, confidence, plate_info)
        VALUES ('{ote}', '{license_plate}', '{serial_number}', '{owner}', '{recording_time}', '{plate_color}', '{coordinates}', {confidence}, '{plate_info}');
        """
    
        # 执行插入数据的SQL语句
        cursor.execute(insert_query)
    
        # 提交事务
        conn.commit()
    
        # 关闭Cursor和Connection
        cursor.close()
        conn.close()
    
    # 假设我们有一个新数据样本
    new_data = {
        "ote": "OTE",
        "license_plate": "鲁HH9999",
        "serial_number": "1",
        "owner": "徐佳",
        "recording_time": "2024-05-03",
        "plate_color": "blue",
        "coordinates": "[149,191,11]",
        "confidence": 0.99,
        "plate_info": "..."
    }
    
    insert_new_data(**new_data)
    
    1. 自动化过程:如果你想要实时监控新增数据并自动将其添加到数据库中,你需要一个持续运行的脚本或服务。这可能涉及到定期检查文件变化、网络接口监听或其他触发机制。这里我们使用watchdog库来监视文件的变化。当文件中有新的数据时,我们将数据插入到数据库中。

    首先,安装watchdog库:

    pip install watchdog
    

    然后,编写一个脚本来监视文件并处理新数据:

    import time
    from watchdog.observers import Observer
    from watchdog.events import FileSystemEventHandler
    
    class NewDataHandler(FileSystemEventHandler):
        def on_modified(self, event):
            if event.is_directory or not event.src_path.endswith('.txt'):  # 根据实际文件扩展名修改条件
                return
    
            with open(event.src_path, 'r') as file:
                new_data = self.parse_data(file.read())
                insert_new_data(**new_data)
    
        def parse_data(self, data):
            # 解析数据的方法取决于数据的具体格式
            # 这里仅作示例,根据实际情况调整
            lines = data.split('\n')
            new_data = {
                "ote": lines[0],
                "license_plate": lines[1],
                ...
            }
            return new_data
    
    if __name__ == "__main__":
        observer = Observer()
        handler = NewDataHandler()
        observer.schedule(handler, path='your_data_folder', recursive=False)
        observer.start()
    
        try:
            while True:
                time.sleep(1)
        except KeyboardInterrupt:
            observer.stop()
        observer.join()
    

    确保将'your_data_folder'替换为包含车牌信息文件的实际路径。这个脚本会持续监视指定目录中的文件变化,当检测到文件被修改时,它会解析新数据并将其插入到数据库中。

    注意:以上代码只是一个基础示例,可能需要根据实际需求进行调整。例如,数据文件的格式、数据库连接的安全性、错误处理等方面都需要考虑。

    评论 编辑记录

报告相同问题?

问题事件

  • 修改了问题 5月4日
  • 创建了问题 5月4日

悬赏问题

  • ¥15 请问Ubuntu要怎么安装chrome呀?
  • ¥15 视频编码 十六进制问题
  • ¥15 Xsheii7我安装这个文件的时候跳出来另一个文件已锁定文件的无一部分进程无法访问。这个该怎么解决
  • ¥15 unity terrain打包后地形错位,跟建筑不在同一个位置,怎么办
  • ¥15 FileNotFoundError 解决方案
  • ¥15 uniapp实现如下图的图表功能
  • ¥15 u-subsection如何修改相邻两个节点样式
  • ¥30 vs2010开发 WFP(windows filtering platform)
  • ¥15 服务端控制goose报文控制块的发布问题
  • ¥15 学习指导与未来导向啊