Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Upsert将字典对象列表批量插入Postgres_Python_Python 3.x_Postgresql - Fatal编程技术网

Python 使用Upsert将字典对象列表批量插入Postgres

Python 使用Upsert将字典对象列表批量插入Postgres,python,python-3.x,postgresql,Python,Python 3.x,Postgresql,我有一个从CSV文件解析的字典对象列表。目前的问题是,由于新数据被附加到CSV上,CSV只会变长我无法控制这个。然而,我需要将新记录批量插入Postgres,但我还必须拒绝重复记录,并检查现有记录的任何更改。我该怎么做呢 csv和表的模式如何?当发现更改时,您必须做什么?你能不能每次都截短表并“从头开始”重新加载?@jjanes你是说每次都把表放下来重新插入?我可以,但我觉得这是一个很大的开销。当我发现需要更新的更改时。如果没有匹配的记录,那么我需要向上插入。而@GiovaniSalazar只是

我有一个从CSV文件解析的字典对象列表。目前的问题是,由于新数据被附加到CSV上,CSV只会变长我无法控制这个。然而,我需要将新记录批量插入Postgres,但我还必须拒绝重复记录,并检查现有记录的任何更改。我该怎么做呢

csv和表的模式如何?当发现更改时,您必须做什么?你能不能每次都截短表并“从头开始”重新加载?@jjanes你是说每次都把表放下来重新插入?我可以,但我觉得这是一个很大的开销。当我发现需要更新的更改时。如果没有匹配的记录,那么我需要向上插入。而@GiovaniSalazar只是
建筑id、名字、姓氏
。为简洁起见,请删节。没有什么special@Dave我们可以使用列的约束组(building_id、first_name、last_name)来控制记录的唯一性吗?…您是否看到了用于将csv加载到表的类似psycopg2的工具…?@GiovaniSalazar实际上有3个唯一键来确定重复。比如说(建筑物id、组id、用户id、名字、姓氏)。在前三个匹配的列中,您知道将有一个重复。如果这是你要问的。