Last active
July 2, 2017 18:09
-
-
Save Mageti/afb64ee43c7ae8d42c33ad9ec04bdf2a to your computer and use it in GitHub Desktop.
Création d'une DB SQLite3 de la base de donnée des médicaments
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/python3 | |
# -*- coding: utf-8 -*- | |
import sqlite3 | |
import urllib.request | |
import settings | |
import datetime | |
def import_db(db, cur): | |
# Téléchargement du fichier | |
response = urllib.request.urlopen(db['url']) | |
data = response.read().decode('latin_1') | |
# Insertion dans la DB | |
cur.execute(db['sql_create']) | |
cur.execute(db['sql_index']) | |
print(db['nom'], end='') | |
ln = 0 | |
for line in data.split('\n'): | |
elements = line.split('\t') | |
if len(elements) == 1: | |
continue | |
if db['nom'] == 'CIS_CIP_bdpm': | |
if '%' in elements[8]: | |
remb = elements[8].replace('%','').strip() | |
else: | |
remb = None | |
if elements[9].replace(',','.').count('.') > 1: | |
elements[9] = elements[9].replace(',','.').replace('.','',1) | |
if elements[10].replace(',','.').count('.') > 1: | |
elements[10] = elements[10].replace(',','.').replace('.','',1) | |
if elements[11].replace(',','.').count('.') > 1: | |
elements[11] = elements[11].replace(',','.').replace('.','',1) | |
prix1 = float(elements[9].replace(',','.')) if elements[9].replace(',','.') else None | |
prix2 = float(elements[10].replace(',','.')) if elements[10].replace(',','.') else None | |
prix3 = float(elements[11].replace(',','.')) if elements[11].replace(',','.') else None | |
elements = (elements[0], | |
elements[1], | |
elements[2], | |
elements[3], | |
elements[4], | |
elements[5], | |
elements[6], | |
elements[7], | |
remb, | |
prix1, | |
prix2, | |
prix3, | |
elements[12]) | |
cur.execute(db['sql_insert'], elements) | |
if db['nom'] == 'CIS_bdpm': | |
insert_fuzzy_name(elements[0], elements[1], db, cur) | |
ln += 1 | |
print('... ',ln) | |
if __name__ == "__main__" : | |
conn = sqlite3.connect(settings.SQLITE_DB) | |
cur = conn.cursor() | |
for db in settings.dbs: | |
import_db(db, cur) | |
cur.execute("CREATE TABLE info (what TEXT, content TEXT);") | |
cur.execute("INSERT INTO info (what, content) VALUES ('date_feed',?)", (datetime.date.today(),)) | |
conn.commit() | |
conn.close() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment