gpt4 book ai didi

python - 使用 Python-Django 将 CSV 文件导入 PostgreSQL 数据库

转载 作者:太空狗 更新时间:2023-10-30 00:15:03 24 4
gpt4 key购买 nike

注意:向下滚动到背景部分以获得有用的详细信息。假设项目使用 Python-Django 和 South,如下图所示。

导入以下 CSV 的最佳方式是什么

"john","doe","savings","personal"
"john","doe","savings","business"
"john","doe","checking","personal"
"john","doe","checking","business"
"jemma","donut","checking","personal"

进入具有相关表 PersonAccountAccountType 的 PostgreSQL 数据库,考虑:

  1. 管理员用户可以通过自定义 UI 实时更改数据库模型和 CSV 导入表示
  2. 普通用户导入 CSV 文件时使用保存的 CSV 到数据库表/字段映射

到目前为止,已经考虑了两种方法

  1. ETL-API 方法:提供 ETL API、电子表格、我的 CSV 到数据库的表/字段映射以及到目标数据库的连接信息。然后,API 将加载电子表格并填充目标数据库表。看着 pygrametl 我不认为我的目标是可能的。事实上,我不确定是否有任何 ETL API 可以做到这一点。
  2. 行级插入方法:解析 CSV 到数据库表/字段的映射,解析电子表格,并以“连接顺序”生成 SQL 插入。

我实现了第二种方法,但在算法缺陷和代码复杂性方面苦苦挣扎。是否有一个 python ETL API 可以满足我的需求?或者不涉及重新发明轮子的方法?


背景

我工作的公司正在寻求将托管在 Sharepoint 中的数百个特定于项目的设计电子表格移动到数据库中。通过允许管理员为每个项目定义/建模数据库、在其中存储电子表格并定义浏览体验,我们即将完成满足需求的 Web 应用程序。在这个完成阶段,过渡到商业工具不是一种选择。将 Web 应用程序视为 django-admin 的替代方案,尽管它不是,具有 DB 建模 UI、CSV 导入/导出功能、可自定义的浏览和模块化代码以解决特定于项目的自定义问题。

已实现的 CSV 导入界面很麻烦且存在错误,因此我正在尝试获取反馈并寻找替代方法。

最佳答案

如何将问题分成两个单独的问题?

创建一个 Person 类,代表数据库中的一个人。这可以使用 Django 的 ORM,或者扩展它,或者你可以自己做。

现在你有两个问题:

  1. 从 CSV 中的一行创建一个 Person 实例。
  2. Person 实例保存到数据库中。

现在,您拥有 CSV 到个人和个人到数据库,而不只是 CSV 到数据库。我认为这在概念上更清晰。当管理员更改架构时,也会更改个人到数据库方面。当管理员更改 CSV 格式时,他们正在更改 CSV 到数据库端。现在你可以分别处理每一个。

这有什么帮助吗?

关于python - 使用 Python-Django 将 CSV 文件导入 PostgreSQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15470167/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com