C++加载sqlite3数据库文件

        db数据库文件简单轻便,形式上可以像excel数据那样,但是解析的时候却有很大的灵活性。使用Python解析db数据已经是很简单的事情,使用专门的数据库可视化工具,通过sql语句查询内容也是有手就行,也许C++也不难,但是对我来说这是个新东西,所以这里就先介绍它吧。


创建数据库文件

      创造虚拟数据,还是要借助于Python,Python简直是数据科学的语言。我的流程是先使用Python创建csv文件,然后将csv文件转为db文件。依旧放图:

       

转换前后文件对比:

但是数据信息确是一毛一样。

csv转db数据代码:

import sqlite3
import pandas as pd# 读取 CSV 文件
csv_file = 'demo.csv'
df = pd.read_csv(csv_file)# 处理列名,替换特殊字符
def sanitize_column_name(column_name):return column_name.replace(':', '_').replace(' ', '_')# 连接到 SQLite 数据库
db_file = 'demo.db'
conn = sqlite3.connect(db_file)
cursor = conn.cursor()# 创建表
table_name = 'people'
sanitized_columns = [sanitize_column_name(col) for col in df.columns]
columns = ', '.join(sanitized_columns)
placeholders = ', '.join(['?'] * len(df.columns))
create_table_sql = f'CREATE TABLE IF NOT EXISTS {table_name} ({columns});'
cursor.execute(create_table_sql)# 插入数据
insert_sql = f'INSERT INTO {table_name} ({columns}) VALUES ({placeholders});'
for row in df.itertuples(index=False, name=None):cursor.execute(insert_sql, row)# 提交事务
conn.commit()# 关闭连接
conn.close()print(f"CSV data has been successfully imported into {db_file}")

c++解析数据库

#include <iostream>
#include <sqlite3.h>int main() {sqlite3* db;int rc;rc = sqlite3_open("F:/pythonProject/demo.db", &db); // 文件路径可以是 ":memory:" 表示内存中的数据库if (rc) {fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));sqlite3_close(db);return 1;}else {std::cout << "Opened database successfully" << std::endl;}sqlite3_close(db);return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/56468.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

31省226地级市极端天气和气候风险指数 (1993-2023年)附下载链接

1993-2023年31省、226个地级市极端天气和气候风险指数 下载链接-点它&#x1f449;&#x1f449;&#xff1a;1993-2023年31省、226个地级市极端天气和气候风险指数-最新出炉.zip 数据名称 1993&#xff5e;2023 省市级气候风险指数 数据来源 nature 子刊&#xff0c;已转…

DEPT:DECOMPOSED PROMPT TUNING FOR PARAMETER-EFFICIENT FINE-TUNING

论文汇总 当前的问题 (1)Prompt Tuning通常收敛缓慢&#xff0c;并且对初始化敏感&#xff1b; (2)Prompt Tuning延长了输入序列的总长度&#xff0c;从而加剧了计算需求(即训练/推理时间和内存成本)&#xff0c;这是由于Transformer的二次复杂度(Vaswani et al, 2017)。 解…

鸿蒙开发:实现全局异常捕获和异常查看

前言 开发中的异常信息&#xff0c;我们很容易排查&#xff0c;直接可以在控制台中就可以查看&#xff0c;但是&#xff0c;提交给测试同学或者上线后的异常信息&#xff0c;我们如何获取呢&#xff1f;这里我们很容易想起&#xff0c;三方sdk&#xff0c;比如常见的腾讯Bugly…

基于Springboot+Vue的学校课程管理系统(含源码数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 这个系…

vue之打包配置环境

一直以来都是用脚手架直接搭建的项目,也很少去深究,前两天因为环境配置变更,稍微研究了下 NODE_ENV 首先 在evn.xxx 的配置文件里 一定要有的NODE_ENV NODE_ENV 默认只有两种状态即development和production development: 指代本地开发即localhost环境&#xff08;本地的开发…

VirtualBox虚拟机桥接模式固定ip详解

VirtualBox虚拟机桥接模式固定ip详解 VirtualBox 桥接设置Ubuntu 24.04使用固定IP问题记录 VirtualBox 桥接设置 为什么设置桥接模式&#xff1f;桥接模式可以实现物理机和虚拟机互相通信&#xff0c;虚拟机也可以访问互联网&#xff08;推荐万金油&#xff09;&#xff0c;物…

EIR管理机卡绑定配置

EIR&#xff08;Equipment Identity Register&#xff09;管理中的机卡绑定配置通常涉及到设备与SIM卡的关系维护&#xff0c;以确保网络能够正确识别和管理设备的身份。下面是关于EIR管理支持机卡绑定配置的一些主要步骤和概念&#xff1a; 1. 概念介绍 机卡绑定&#xff1a…

2020款Macbook Pro A2251无法充电无法开机定位及修复

问题背景 up主有一台2020年的Macbook Pro&#xff0c;带Touch Bar&#xff0c;16G512G&#xff0c;四核I5&#xff0c;型号A2251 应该是一周没充电了&#xff0c;之前还用的好好的&#xff0c;后来有一天出差想带上 打开没电&#xff0c;手头上有个小米的66W快充头&#xff0c…

LeetCode常用算法模板

代码模板 1、DFS&#xff1a;适用于树和图的遍历、组合问题。 2、BFS&#xff1a;适用于树和图的层次遍历、最短路径问题。 3、二分查找&#xff1a;适用于有序数组的搜索问题。 4、动态规划&#xff1a;适用于最优化问题、序列问题。 5、贪心算法&#xff1a;适用于局部最优问…

(二)Windows通过vs c++编译PaddleOCR-2.8.1

编译环境 操作系统&#xff1a;windows 11 paddleOCR版本&#xff1a;2.8.1 opencv版本&#xff1a;4.10.0 cmake版本&#xff1a;3.22.6 git版本&#xff1a;2.47.0 visual statio版本&#xff1a;VS 2022 Community&#xff08;选择社区版本即可&#xff0c;安装时记得…

python离线安装依赖

以pymsql依赖为例操作如下: Python Package Index&#xff08;PyPI&#xff09;的官方网址是&#xff1a; PyPI The Python Package Index 在这个网站上&#xff0c;你可以搜索、浏览和下载Python包。 tar -xvzf pymysql2-1.3.3.tar.gz cd pymysql2-1.3.3 python setup.p…

Angular 框架入门教程:从安装到路由、服务与状态管理详解

一、引言 在前端开发领域&#xff0c;Angular 是一个强大且流行的框架。它由 Google 维护&#xff0c;基于 TypeScript&#xff0c;采用模块化设计&#xff0c;提供了组件化开发、依赖注入、路由、表单处理等丰富功能&#xff0c;旨在帮助开发者构建高效、可维护的单页应用程序…

502 错误码通常出现在什么场景?

服务器过载场景 高流量访问&#xff1a;当网站遇到突发的高流量情况&#xff0c;如热门产品促销活动、新闻热点事件导致网站访问量激增时&#xff0c;服务器可能会因承受过多请求而无法及时响应。例如&#xff0c;电商平台在 “双十一” 等购物节期间&#xff0c;大量用户同时…

文生图的底层逻辑比你想象中简单!从大语言模型到大型多模态模型的演进与展望

2024年8月15日&#xff0c;来自浙江农林大学&#xff08;数学与计算机科学学院&#xff09;冯海林团队在CMC期刊发表名为“Evolution and Prospects of Foundation Models: From Large Language Models to Large Multimodal Models”的文章。在这篇文章中&#xff0c;研究团队首…

铲屎官们快来交作业!双十一性价比高的宠物空气净化器求推荐?

好不容易等到一年一度的双十一&#xff0c;这个购物狂欢节我肯定不能错过。除了自己买买买外&#xff0c;还准备给我家小猫也买个礼物。之前听说宠物空气净化器对养宠家庭作用很大&#xff0c;打算趁活动拿下。 不看不知道&#xff0c;一看吓一跳&#xff0c;有点太贵了吧&…

【SoC】被忽略的reset结构设计

1024这天爆出来的设计失误&#xff0c;真的很应景啦&#xff01; 先献上A72的reset结构图吧&#xff0c;虽然最终的解决方案不是按照这个来的&#xff0c;不过也给了一个相对较清晰的reset架构了。 异步复位树 当对整个电路进行复位的时候&#xff0c;使用异步复位&#xff0c…

spark统一内存模型 详解

Apache Spark 是一个用于大规模数据处理的分布式计算框架&#xff0c;它支持多种处理模型&#xff08;如批处理、流处理、SQL、机器学习等&#xff09;。为了高效地在分布式环境中处理这些多样化的工作负载&#xff0c;Spark 在 2.x 版本后引入了统一内存管理模型&#xff0c;以…

ubuntu安装mysql8,离线安装mysql8

1、mysql官网下载安装包&#xff0c;版本号以实际下载为准 https://dev.mysql.com/downloads/mysql/ 如&#xff1a; mysql-server_8.0.40-1ubuntu24.04_amd64.deb-bundle.tar 2、上传到服务器 如 /opt/目录 3、创建一个mysql目录解压 mkdir mysql & tar -xvf mysql-server…

【实战项目】——Boost搜索引擎(五万字)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、项目的相关背景 1.1、什么是Boost库&#xff1f; 1.2、什么是搜索引擎&#xff1f; 1.3、为什么要做Boost库搜索引擎&#xff1f; 二、搜索引擎的宏观原…

10.24Python_pandas_基础

一、基础 1、概述 Pandas 是一个开源的第三方 Python 库&#xff0c;从 Numpy 和 Matplotlib 的基础上构建而来Pandas 名字衍生自术语 “panel data”&#xff08;面板数据&#xff09;和 “Python data analysis”&#xff08;Python 数据分析&#xff09;Pandas 已经成为 P…