url/JSON에서 데이터를 가져와 디코딩하고 JSON의 요소를 sqlite 테이블로 보냅니다.Python을 통해 JSON에 JSON : REPLACE INTO 동일한 행을 인식하지 못합니다.
JSON을 매 순간마다 당겨서 때로는 동일한 JSON (아직 새로 고치지 않은)을 가져옵니다. 그러나 동일한 데이터를 두 번 이상 테이블에 입력하고 싶지 않습니다. 이 문제에 대한 해결책은 도움이됩니다.
제 생각에 JSON의 'time executed'요소를 sqlite로 전달되는 필드 중 하나로 포함하기 만하면됩니다. 따라서 INSERT 대신 REPLACE를 사용하면 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)
그러나 중복 행이 입력되는 것을 방지하지 못합니다. 스크립트가 실행될 때마다 테이블에 새로운 항목 (중복되는 경우에도)이 삽입됩니다.
생각하십니까? 다른 솔루션? 친절하게 감사드립니다.
감사합니다. 유일성 제약 조건으로 작동 할 수있는 두 개의 필드를 함께 해시하는 필드 HASH가 있다고 가정 해보십시오. 바꾸기 구문은 어떻게 작동합니까? – user1893148
그것을 발견했습니다 --- 도움을 주셔서 감사합니다. – user1893148