如何在python或R中以编程方式将多个数据库文件转换为csv?

时间:2019-01-17 06:10:27

标签: python r sqlite export-to-csv

我有数千个包含传感器数据的*.db文件。所有*.db文件都具有与ID,MACID,RSSI,ENTRY,EXIT,DEVICEID,UNIQUEID类似的结构。我看到类似this one这样的问题,但是该解决方案对我不起作用。

到目前为止,我已经尝试过:

  1. 最初尝试使用DB Browser for SQLite将各个*.db分别转换为.csv格式。很多复制粘贴,我讨厌它!

  2. 使用在线论坛,如下创建了一个临时脚本;

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文件非常有效。如何使它适用于多个数据库文件。

1 个答案:

答案 0 :(得分:1)

如果您使用python,

使用sqlite和csv软件包将每个sqlite .db文件转换为csv文件。

然后使用pandas读取所有csv文件,并使用pandas写入单个csv文件。

编辑:好吧,不需要熊猫,您可以直接写入单个csv文件。

编辑2:这是一个快速的笔记本: https://github.com/darshanz/CombineMultipleSqliteToCsv