From 84ad20fbead18317730805a11ba8d0b4126fc3e0 Mon Sep 17 00:00:00 2001 From: "aldo.gonzalez-lorenzo" <aldo.gonzalez-lorenzo@lis-lab.fr> Date: Wed, 4 Jan 2023 12:18:56 +0100 Subject: [PATCH] Make several SQL queries instead of a single one --- data/make-sql.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/data/make-sql.py b/data/make-sql.py index 76ec438..b210484 100644 --- a/data/make-sql.py +++ b/data/make-sql.py @@ -154,7 +154,7 @@ def find_types(labels, data): -def make_row(fields, i) -> str: +def make_row(fields, i, last=False) -> str: values = [i] for key in labels: if 'varchar' in labels[key]['type']: @@ -166,6 +166,8 @@ def make_row(fields, i) -> str: else: value = fields[key] if key in fields else 0 values.append(value) + if last: + return '(' + ', '.join(f'{v}' for v in values) + ');\n' return '(' + ', '.join(f'{v}' for v in values) + '),\n' # return f'({i}, "{fields["acad_mies"]}", "{fields["acc_ab"]}", "{fields["acc_aca_orig"]}", "{fields["ville_etab"]}", "{fields["lib_for_voe_ins"]}"),\n' @@ -173,7 +175,6 @@ def make_row(fields, i) -> str: with open('fr-esr-parcoursup.json', 'r') as f: data = json.load(f) random.shuffle(data) -data = data[:1000] find_types(labels, data) @@ -186,12 +187,14 @@ for k, v in labels.items(): lines.append(" PRIMARY KEY (`id`)") lines.append("\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;\n\n") -lines.append('INSERT INTO `parcoursup` (`id`, ' + ', '.join(f'`{k}`' for k in labels) + ') VALUES\n') -# print(lines) - -for i, datum in enumerate(data): - lines.append(make_row(datum['fields'], i+1)) - +for i in range(len(data)): + if i % 100 == 0: + lines.append('INSERT INTO `parcoursup` (`id`, ' + ', '.join(f'`{k}`' for k in labels) + ') VALUES\n') + lines.append(make_row(data[i]['fields'], i+1)) + elif i % 100 == 99: + lines.append(make_row(data[i]['fields'], i+1, True)) + else: + lines.append(make_row(data[i]['fields'], i+1)) lines.append(ending) with open('dog_breeds.sql', 'w') as writer: -- GitLab