繁体   English   中英

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

[英]How to programmatically convert multiple db files to csv in python or R?

我有数千个包含传感器数据的*.db文件。 所有*.db文件都具有相同的结构,如ID,MACID,RSSI,ENTRY,EXIT,DEVICEID,UNIQUEID 我曾见过这样一个类似的问题这一个,但解决方案并不为我工作。

到目前为止我尝试过的:

  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 文件。 如何使其适用于多个 db 文件。

如果你使用python,

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM