-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjson2sql.py
More file actions
45 lines (40 loc) · 1.33 KB
/
Copy pathjson2sql.py
File metadata and controls
45 lines (40 loc) · 1.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import json
import psycopg2
# Load JSON data
with open('exponentielle.json', 'r', encoding='utf-8') as file:
data = json.load(file)
# Connect to PostgreSQL
conn = psycopg2.connect(
dbname="your_db_name",
user="your_db_user",
password="your_db_password",
host="your_db_host",
port="your_db_port"
)
cur = conn.cursor()
# Insert subject
cur.execute("INSERT INTO subjects (name, description) VALUES (%s, %s) RETURNING id", (data['nom'], data['description']))
subject_id = cur.fetchone()[0]
# Insert questions
for question in data['questions']:
cur.execute("""
INSERT INTO questions (
subject_id, level, statement, hint, question_comment, answer, explanation, answer_comment, answer_source, origin_source, author_id
) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, (SELECT id FROM users WHERE name = %s))
""", (
subject_id,
question['niveau'],
question['question']['énoncé'],
question['question']['indice'],
question['question']['commentaire'],
question['réponse']['réponse'],
question['réponse']['explication'],
question['réponse']['commentaire'],
question['réponse']['source'],
question['origine']['source'],
question['origine']['auteur']
))
# Commit and close
conn.commit()
cur.close()
conn.close()