我有数千个包含传感器数据的*.db
文件。所有*.db
文件都具有与ID,MACID,RSSI,ENTRY,EXIT,DEVICEID,UNIQUEID
类似的结构。我看到类似this one这样的问题,但是该解决方案对我不起作用。
到目前为止,我已经尝试过:
最初尝试使用DB Browser for SQLite
将各个*.db
分别转换为.csv
格式。很多复制粘贴,我讨厌它!
使用在线论坛,如下创建了一个临时脚本;
import sqlite3
from sqlite3 import Error
import pandas as pd
dataPath = "path_to_a_single_db_file"
# create database connection
conn = sqlite3.connect(dataPath)
# a custom function to create database connection
# Reference: http://www.sqlitetutorial.net/sqlite-python/sqlite-python-select/
def create_connection(db_file):
try:
conn = sqlite3.connect(db_file)
return conn
except Error as e:
print(e)
return None
# create a function for reading & writing the Wifi table
def read_write_wifi_tbl_to_csv(conn):
cur = conn.cursor()
query='select * from WIFI'
data=pd.read_sql(query,conn)
data.to_csv('export.csv')
def main():
# create a database connection
conn = create_connection(dataPath)
with conn:
print("1. Query and writing to Wifi table")
read_write_wifi_tbl_to_csv(conn)
if __name__ == '__main__':
main()
上面的代码片段对于单个db文件非常有效。如何使它适用于多个数据库文件。
答案 0 :(得分:1)
如果您使用python,
使用sqlite和csv软件包将每个sqlite .db文件转换为csv文件。
然后使用pandas读取所有csv文件,并使用pandas写入单个csv文件。
编辑:好吧,不需要熊猫,您可以直接写入单个csv文件。
编辑2:这是一个快速的笔记本: https://github.com/darshanz/CombineMultipleSqliteToCsv