【问题标题】:Importing CSV file into postgreSQL but have duplicates将 CSV 文件导入 postgreSQL 但有重复项
【发布时间】:2016-11-02 01:31:16
【问题描述】:

我正在使用 Python 将 CSV 数据导入 postgreSQL。我的 CSV 文件中似乎有重复项。我的 CSV 文件中有五列,其中之一是用户名。如何告诉 Python 向我显示文件中具有相同用户名的重复项。请提供您的帮助。我是编程新手,所以请原谅我的愚蠢。如果无法使用此代码和脚本,我该如何操作代码以便在 CSV 文件中找到它们的重复项。

import psycopg2
import csv

csv_data = csv.reader(file('SampleData2.csv'))

【问题讨论】:

  • “我的 CSV 文件中似乎有重复项。” 为什么? PostgreSQL会给你一个错误吗?哪个错误?
  • 当我在 postgreSQL 中运行查询时,count(username) > 1 它会返回很多用户名。用户名是一个独特的字段,它不应该有重复。我想在 Python 中查看这些重复项,然后一旦我看到它们,我希望能够删除它们。我想在 Python 中完成这个过程。
  • 所以你可以edit你的问题并删除所有与你的问题无关的PostgreSQL相关代码。而是包含您尝试从 CSV 输入中删除重复项的代码。
  • 现在请添加一个包含重复的输入样本。还请解释为什么它们是重复的。不要忘记包含您尝试检测和删除它们的 Python 代码。
  • @Pythonlearner,你必须在 Python 中使用 Sets。docs.python.org/2/library/sets.html

标签: python postgresql csv


【解决方案1】:

如果您希望能够将文件导入数据库而不创建重复项,您可以执行“UPSERT”之类的操作。这将更新(因为它是重复的,所以这无关紧要)或创建一个新记录。

看到这个答案:Insert, on duplicate update in PostgreSQL?

【讨论】:

  • 谢谢 Joshua,现在我只想查看具有相同用户名的重复项列表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多