我正在从 url/JSON 中提取数据,解码 JSON 的元素并将其发送到 sqlite 表。
当我每隔一分钟提取一次 JSON 时,有时我会提取相同的 JSON(尚未刷新)。但是,我不想在表中多次输入相同的数据。这个问题的任何解决方案都是有帮助的。
我的想法是简单地将 JSON 的“执行时间”元素作为传递给 sqlite 的字段之一。因此,如果我使用 REPLACE 而不是 INSERT,当且仅当 JSON 具有新时间戳时,我才会将新行插入到现有 SQL 表中。这就是我的意思:
json = json.loads(y)
jsontime = json['executionTime']
db = sqlite3.connect('database.db')
c = db.cursor()
c.execute("""CREATE TABLE IF NOT EXISTS cbdata (
cb_id INTEGER PRIMARY KEY ASC,
tjson DATE,
id INTEGER,
Name TEXT,
Age INTEGER);""")
for item in json['List']:
i1 = item["id"]
i2 = item["Name"]
i3 = item["Age"]
iall = [jsontime, i1, i2, i3]
c.execute("REPLACE into cbdata values(NULL,?,?,?,?)", iall)
但是,这并不能防止输入重复的行。每次脚本运行时,都会将新的(即使重复的)条目插入到表中。
想法?其他解决方案?非常感谢。