我正在研究 PostgreSQL 和 psycopg2。尝试获取每 10 分钟更新一次的提要数据并将此提要内容保存在 PostgreSQL 数据库中。我的目标是从该表中检索和打印这些数据。但是由于表上的插入操作,每次我运行该脚本时,都会面临重复数据也存储在数据库中的问题。
为了摆脱这个问题,我对location_title
表Locations-musiq1
中的列进行了主键约束,我打算在其中存储我的提要数据。但面临错误。
这是我的代码:
import psycopg2
import sys
import feedparser
import codecs
import psycopg2.extensions
# Parsing data from Geofeed location feeds
data = feedparser.parse("some URL")
psycopg2.extensions.register_type(psycopg2.extensions.UNICODE)
try:
conn=psycopg2.connect("dbname='name' user='postgres' host='localhost' password='abcds'")
conn.set_client_encoding('UNICODE')
except:
print "I am unable to connect to the database, exiting."
sys.exit()
cur=conn.cursor()
for i in range(len(data['entries'])):
cur.execute("INSERT INTO locations_musiq1(location, location_title) VALUES (%s, %s)", (data.entries[i].title,data.entries[i].summary))
conn.commit()
cur.execute("SELECT * FROM locations_musiq1;")
cur.fetchone()
for row in cur:
print ' '.join(row[1:])
cur.close()
conn.close()
将“locations_musiq1”表列“location_title”更改为主键后我的错误是:
回溯(最近一次通话最后): 文件“F:\JavaWorkspace\Test\src\postgr_example.py”,第 28 行,在 cur.execute("INSERT INTO locations_musiq1(location, location_title) VALUES (%s, %s)", (data.entries[i].title,data.entries[i].summary)) psycopg2.IntegrityError:重复键值违反唯一约束“locations_musiq1_pkey”
任何人都可以有任何想法来解决这个问题吗?..提前谢谢..