Как это можно решить ? добавление в Postgres
У меня есть код, который добавляет данные в PostgreSQL, но проблема в том, что, когда нету ключа то он начинает выдавать KeyError. Я бы мог бы это решить с помощью try, но когда я это ставлю, то он пропускает все, даже где есть этот ключ. Как можно это решить ?
with open('test3.json') as file:
data = json.load(file)
out = data
with psycopg2.connect("dbname='test' user='user' host='127.0.0.1' password='12345'") as conn1:
with conn1.cursor() as cur:
cur.executemany("INSERT INTO test VALUES (%(Object)s, %(subobject)s, %(Name)s, %(Ip)s, %(Status)s, %(Mac)s, %(sn)s);", out)
conn1.commit()
Данные:
[{
"Object": "info 1",
"subobject": "info 2",
"Name": "info 3",
"Ip": "info 4",
"Status": "info 5",
"Mac": "info 6",
"Worker": "info 7",
"Sn": "info 8",
},
{
"Object": "info 9",
"subobject": "info 10",
"Name": "info 11",
"Ip": "info 12",
"Status": "info 13",
"Mac": "info 14",
"Worker": "info 15",
"Sn": "info 16",
"#4F6128": "info 17",
"#F79646": "info 18",
"#92D050": "19",
"#A00000": "info 20"
}]
ругается на "Worker", "#4F6128", "#92D050", "#A00000". Так как они не везде есть. Вместо них можно было написать no
Error:
cur.executemany("INSERT INTO test VALUES (%(Object)s, %(subobject)s, %(Name)s, %(Ip)s, %(Status)s, %(Mac)s, %(worker)s, %(sn)s);", out)
KeyError: 'worker'