Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将sqlilte3数据库从python代码转换为tsv?_Python_Sqlite_Csv - Fatal编程技术网

如何将sqlilte3数据库从python代码转换为tsv?

如何将sqlilte3数据库从python代码转换为tsv?,python,sqlite,csv,Python,Sqlite,Csv,我正在尝试获取sqlite3数据库中的表,并将它们保存到tsv文件中 熊猫有这样做的工具吗 我知道如何从sqlite执行此操作: sqlite> .mode tabs sqlite> .output test1.tsv sqlite> Select * from <table_name>; sqlite>.mode选项卡 sqlite>.output test1.tsv sqlite>Select*from; 但是如何在python环境中执行相同的操作呢?TSV

我正在尝试获取sqlite3数据库中的表,并将它们保存到tsv文件中

熊猫有这样做的工具吗

我知道如何从sqlite执行此操作:

sqlite> .mode tabs
sqlite> .output test1.tsv
sqlite> Select * from <table_name>;
sqlite>.mode选项卡
sqlite>.output test1.tsv
sqlite>Select*from;

但是如何在python环境中执行相同的操作呢?

TSV==制表符分隔的值,因此内置的
csv
模块足以导出数据。简单到:

import csv
import sqlite3

connection = sqlite3.connect("your_database.db")  # open connection to your database
cursor = connection.cursor()  # get a cursor for it
cursor.execute("SELECT * FROM your_table_name")  # execute the query
rows = cursor.fetchall()  # collect the data
with open("test1.tsv", "wb") as f:  # On Python 3.x use "w" mode and newline=""
    writer = csv.writer(f, delimiter="\t")  # create a CSV writer, tab delimited
    writer.writerows(rows)  # write your SQLite data

应该可以做到这一点。

TSV==制表符分隔的值,因此内置的
csv
模块足以导出数据。简单到:

import csv
import sqlite3

connection = sqlite3.connect("your_database.db")  # open connection to your database
cursor = connection.cursor()  # get a cursor for it
cursor.execute("SELECT * FROM your_table_name")  # execute the query
rows = cursor.fetchall()  # collect the data
with open("test1.tsv", "wb") as f:  # On Python 3.x use "w" mode and newline=""
    writer = csv.writer(f, delimiter="\t")  # create a CSV writer, tab delimited
    writer.writerows(rows)  # write your SQLite data

应该可以。上面的答案对我来说并不奏效。如果没有很多行代码或者输出文件中没有格式问题,我就找不到好的答案。因此,我刚刚提出了我自己的版本,在几行代码中没有问题

    import pandas as pd

    conn = sqlite3.connect(self.err_db_file, isolation_level=None,
                           detect_types=sqlite3.PARSE_COLNAMES)
    db_df = pd.read_sql_query("SELECT * FROM error_log", conn)
    db_df.to_csv('database.tsv', index=False, sep='\t')

上面的答案对我来说并不适用。如果没有很多行代码或者输出文件中没有格式问题,我就找不到好的答案。因此,我刚刚提出了我自己的版本,在几行代码中没有问题

    import pandas as pd

    conn = sqlite3.connect(self.err_db_file, isolation_level=None,
                           detect_types=sqlite3.PARSE_COLNAMES)
    db_df = pd.read_sql_query("SELECT * FROM error_log", conn)
    db_df.to_csv('database.tsv', index=False, sep='\t')

解决这个问题的关键是迭代。迭代表,每次迭代都写入tsv。两者都有很多例子。教程中有一个关于sqlite+Python的好例子,解决这个问题的关键是迭代。迭代表,每次迭代都写入tsv。两者都有很多例子。在sqlite+Python上有一个很好的教程。