【问题标题】:import from CSV to Postgres is missing some rows in python从 CSV 导入 Postgres 在 python 中缺少一些行
【发布时间】:2020-10-23 06:58:21
【问题描述】:

我一直在尝试每 10 分钟后将大量数据从 csv 导入 Postgres。 在 celery 的帮助下,我同时安排了几项工作。

没有。导入到 postgres 后,csv 中的行数不匹配。

我一直在使用 df.to_sql() 方法将 CSV 写入数据库,它没有抛出任何错误,但数据库中仍然缺少一些行。

根据我的观察,表越来越大会导致行丢失。

是 Postgres 限制吗? 或者是工作的重叠计划导致锁定或其他什么?

【问题讨论】:

  • CSV 文件的格式是否正确?
  • 是的,在编写本地系统的相同 csv 时,它不会丢失任何行,但在多个作业并行运行的服务器上,有时会跳过几行(不是每次)
  • 我会说这表明您的并行化代码没有正确选择单独作业的边界。
  • 如果文件在引号内包含换行符,则行数与行数不同。如果不是这样,那可能是你的代码,因为 PostgreSQL 在这方面非常健壮。
  • 我的代码在本地运行数百个文件时运行良好,但在服务器上部署时跳过几行。读入 df 时记录行数。它正确读取所有行,但不知道为什么它在写入数据库时​​跳过!

标签: python-3.x postgresql import django-celery


【解决方案1】:

在我的 CSV 文件的一列中,我有这种格式的数据:

"abc, xyz"

所以,使用quotechar='"' 帮助我解决了我的问题。

感谢大家的意见和建议。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-27
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 2016-10-09
    相关资源
    最近更新 更多