跳转到主要内容

快速转换csv文件

项目描述

CSVS Convert

快速将CSV文件转换为XLSX/SQLITE/POSTGRESQL/PARQUET。

安装

pip install csvs_convert

文档

完整文档

目标

  • 彻底猜测CSV列的类型,因此无需为每个字段配置类型。首先扫描整个文件,以确保列中的所有类型都一致。还可以检测30多种日期/时间格式以及JSON数据。
  • 快速转换/类型猜测(底层使用rust)。使用针对每种输出格式特定的快速方法
    • 为PostgreSQL使用copy
    • 使用c API为sqlite准备语句。
    • 为parquet使用Arrow reader。
    • 为libxlsxwriter使用仅写入模式。
  • 尝试通过在无法确定更具体的类型时使用"text"来限制插入数据库时的错误。
  • 在向现有数据库插入时,自动迁移目标数据库的模式以允许新数据(使用evolve选项)。
  • 内存高效。所有csvs和输出都是流式传输的,因此所有转换应该占用非常少的内存。
  • 将关于CSV文件的数据和统计信息收集到datapackage.json文件中,该文件可用于自定义转换。

缺点

  • CSV文件当前需要标题行。
  • 整个文件需要位于磁盘上,因为整个CSV文件被分析,因此文件被读取两次。

转换文档

这是一个Python库,提供了对rust库的绑定。

在github上贡献

从CSV文件使用方法。

import csvs_convert

#sqlite
csvs_convert.csvs_to_sqlite("sqlite.db", ["file.csv"])
#postgres
csvs_convert.csvs_to_postgres("postgresql://user:postgres@localhost/db", ["file.csv"])
#parquet
csvs_convert.csvs_to_parquet("output", ["file.csv"])
#xlsx
csvs_convert.csvs_to_xlsx("output.xlsx", ["sqlite.db"])

从数据包使用方法

数据包是一个包含其表元数据的文件,其规范在这里描述

要生成datapackage.json文件,您可以使用

csvs_convert.csvs_to_datapackage('path/to/datapackage.json', ["fixtures/large/csv/data.csv"])

其他工具也可以生成这些文件。

您可以使用此文件并根据需要对其进行修改。如果您想在多个文件中使用相同的模式,这非常有用,因为它将节省时间,无需为每个文件进行类型猜测。

在引用数据包时,您可以引用

  • datapackage.json文件。
  • 包含datapackage.json文件的数据包目录。例如:/a/datapackage/dir
  • 包含datapackage.json文件的zip文件。例如:my_datapackage.zip

示例

import csvs_convert

#sqlite
csvs_convert.datapackage_to_sqlite("sqlite.db", "path/to/datapackage.json")
#postgres
csvs_convert.datapackage_to_postgres("postgresql://user:postgres@localhost/db", "path/to/datapackage.json")
#parquet
csvs_convert.datapackage_to_parquet("path/to/directory", ["sqlite.db"])
#xlsx
csvs_convert.datapackage_to_xlsx("output.xlsx", "path/to/datapackage.json")

项目详情


下载文件

下载您平台对应的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

csvs_convert-0.7.3.tar.gz (99.2 kB 查看哈希值)

上传时间 源代码

构建分发

csvs_convert-0.7.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB 查看哈希值)

上传时间 PyPy manylinux: glibc 2.17+ x86-64

csvs_convert-0.7.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ x86-64

csvs_convert-0.7.3-cp311-cp311-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (10.0 MB 查看哈希值)

上传时间 CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64) macOS 10.9+ x86-64 macOS 11.0+ ARM64

csvs_convert-0.7.3-cp311-cp311-macosx_10_7_x86_64.whl (5.2 MB 查看哈希值)

上传时间 CPython 3.11 macOS 10.7+ x86-64

csvs_convert-0.7.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB 查看哈希值)

上传时间 CPython 3.10 manylinux: glibc 2.17+ x86-64

csvs_convert-0.7.3-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (10.0 MB 查看哈希值)

上传时间 CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64) macOS 10.9+ x86-64 macOS 11.0+ ARM64

csvs_convert-0.7.3-cp310-cp310-macosx_10_7_x86_64.whl (5.2 MB 查看哈希值)

上传时间 CPython 3.10 macOS 10.7+ x86-64

csvs_convert-0.7.3-cp39-none-win_amd64.whl (4.4 MB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

csvs_convert-0.7.3-cp39-none-win32.whl (4.1 MB 查看哈希值)

上传于 CPython 3.9 Windows x86

csvs_convert-0.7.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64

csvs_convert-0.7.3-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (10.0 MB 查看哈希值)

上传于 CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64) macOS 10.9+ x86-64 macOS 11.0+ ARM64

csvs_convert-0.7.3-cp39-cp39-macosx_10_7_x86_64.whl (5.2 MB 查看哈希值)

上传于 CPython 3.9 macOS 10.7+ x86-64

csvs_convert-0.7.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ x86-64

csvs_convert-0.7.3-cp38-cp38-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (10.0 MB 查看哈希值)

上传于 CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64) macOS 10.9+ x86-64 macOS 11.0+ ARM64

csvs_convert-0.7.3-cp38-cp38-macosx_10_7_x86_64.whl (5.2 MB 查看哈希值)

上传于 CPython 3.8 macOS 10.7+ x86-64

csvs_convert-0.7.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB 查看哈希值)

上传于 CPython 3.7m manylinux: glibc 2.17+ x86-64

csvs_convert-0.7.3-cp37-cp37m-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (10.0 MB 查看哈希值)

上传于 CPython 3.7m macOS 10.9+ universal2 (ARM64, x86-64) macOS 10.9+ x86-64 macOS 11.0+ ARM64

csvs_convert-0.7.3-cp37-cp37m-macosx_10_7_x86_64.whl (5.2 MB 查看哈希值)

上传于 CPython 3.7m macOS 10.7+ x86-64

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面