Как программно конвертировать несколько файлов БД в CSV в Python или R? - PullRequest
0 голосов
/ 17 января 2019

У меня есть тысячи *.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()

Приведенный выше фрагмент кода хорошо работает для одного файла БД. Как заставить это работать для нескольких файлов БД.

1 Ответ

0 голосов
/ 17 января 2019

Если вы используете Python,

Используйте пакеты sqlite и csv для преобразования каждого файла sqlite .db в файл csv.

Затем используйте pandas для чтения всех csv-файлов и записи в один csv-файл, используя pandas.

РЕДАКТИРОВАТЬ: ну, панды не требуется, вы можете напрямую записать в один CSV-файл.

РЕДАКТИРОВАТЬ 2: Вот быстрый блокнот для этого: https://github.com/darshanz/CombineMultipleSqliteToCsv

...