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;
}