python读取SQLite数据库文件并转csv(.sqlite 文件)

要读取一个SQLite数据库文件(.sqlite 文件),可以使用各种编程语言提供的SQLite库来执行数据库操作。

以下是一个Python的示例,演示如何使用sqlite3库来读取SQLite数据库文件:

import sqlite3

# 连接到SQLite数据库文件
conn = sqlite3.connect('your_database.sqlite')

# 创建一个游标对象
cursor = conn.cursor()

# 执行SQL查询
cursor.execute('SELECT * FROM your_table')

# 获取查询结果
results = cursor.fetchall()

# 处理查询结果
for row in results:
    print(row)

# 关闭游标和连接
cursor.close()
conn.close()

请确保Python环境已经安装了sqlite3库:

pip install sqlite3

也可以根据使用的编程语言和库的不同来进行数据库操作,但基本的步骤是连接到数据库,执行SQL查询,获取结果,然后进行处理。

Python代码来获取数据库中的所有表格名称
import sqlite3

# 连接到SQLite数据库文件
conn = sqlite3.connect('your_database.sqlite')

# 创建一个游标对象
cursor = conn.cursor()

# 执行查询以获取所有表格名称
cursor.execute("SELECT name FROM sqlite_master WHERE type='table';")

# 获取查询结果
tables = cursor.fetchall()

# 打印表格名称
for table in tables:
    print(table[0])

# 关闭游标和连接
cursor.close()
conn.close()

将SQLite数据库查询结果保存为CSV文件
import sqlite3
import csv

# 连接到SQLite数据库文件
conn = sqlite3.connect('your_database.sqlite')

# 创建一个游标对象
cursor = conn.cursor()

# 执行SQL查询
cursor.execute('SELECT * FROM your_table')

# 获取查询结果
results = cursor.fetchall()

# 指定要保存的CSV文件名
csv_file = 'output.csv'

# 将查询结果写入CSV文件
with open(csv_file, 'w', encoding='utf-8', newline='') as file:
    csv_writer = csv.writer(file)
    
    # 写入CSV文件的标题行(可选)
    column_names = [description[0] for description in cursor.description]
    csv_writer.writerow(column_names)
    
    # 写入查询结果行
    csv_writer.writerows(results)

# 关闭游标和连接
cursor.close()
conn.close()

将SQLite数据库查询结果保存为GeoJSON文件(1)
import sqlite3
import json

# 连接到SQLite数据库文件
conn = sqlite3.connect('../data/port-list.sqlite')

# 创建一个游标对象
cursor = conn.cursor()

# 执行SQL查询获取数据
cursor.execute('SELECT id, country, port, latitude, longitude FROM port_details')
data = cursor.fetchall()

# 构建GeoJSON对象
features = []
for row in data:
    feature = {
        "type": "Feature",
        "properties": {
            "id": row[0],
            "country": row[1],
            "port": row[2]
        },
        "geometry": {
            "type": "Point",
            "coordinates": [row[4], row[3]]  # 注意经纬度的顺序
        }
    }
    features.append(feature)

geojson_data = {
    "type": "FeatureCollection",
    "features": features
}

# 将GeoJSON数据写入文件
with open('output.geojson', 'w') as geojson_file:
    json.dump(geojson_data, geojson_file)

# 关闭游标和连接
cursor.close()
conn.close()
将SQLite数据库查询结果保存为GeoJSON文件(2)
import sqlite3
import geojson

# 连接到SQLite数据库文件
conn = sqlite3.connect('../data/port-list.sqlite')
cursor = conn.cursor()

# 执行查询
cursor.execute("SELECT id, country, port, latitude, longitude FROM port_details")

# 创建一个FeatureCollection对象
features = []

for row in cursor.fetchall():
    id, country, port, latitude, longitude = row
    point = geojson.Point((longitude, latitude))
    properties = {
        "id": id,
        "country": country,
        "port": port
    }
    feature = geojson.Feature(geometry=point, properties=properties)
    features.append(feature)

feature_collection = geojson.FeatureCollection(features)

# 将FeatureCollection对象转换为GeoJSON字符串
geojson_str = geojson.dumps(feature_collection)

# 关闭游标和连接
cursor.close()
conn.close()

# 将GeoJSON字符串写入文件
with open('port-list.geojson', 'w', encoding='utf-8') as output_file:
    output_file.write(geojson_str)

posted @ 2023-09-14 22:03  槑孒  阅读(491)  评论(0编辑  收藏  举报