如何将sqlilte3数据库从python代码转换为tsv?
我正在尝试获取sqlite3数据库中的表,并将它们保存到tsv文件中 熊猫有这样做的工具吗 我知道如何从sqlite执行此操作:如何将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
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上有一个很好的教程。