Exemple #1
0
def insert_bien(liste_dico):
    """Insertion des données scrapées dans la base de données"""

    # recuperation des données contenues dans la table ville
    debut = time.time()
    liste_ville = []
    for v in Ville.select():
        liste_ville += [v.nom]
    nb = 0
    nouvelle_villes = []
    for ddico in liste_dico:
        if ddico["lieu"] not in liste_ville:
            liste_ville.append(ddico["lieu"])
            num_ville = Ville.create(nom=ddico["lieu"])
            nouvelle_villes.append(num_ville)
        else:
            recuperateur = Ville.select().where(Ville.nom == ddico["lieu"])
            for r in recuperateur:
                num_ville = r
        liste_dico[nb]["id_ville"] = num_ville.id_ville
        nb += 1

    #creations des données dans la base grâce aux dictionnaire.id_ville
    for biens in liste_dico:
        try:
            with db.atomic():
                Logement.create(**biens)
        except Exception as e:
            print(e)
            pass
    fin = time.time()
    performance_insert = [fin - debut]
    print("la fonction insert_bien a été executée en", performance_insert)
    return nouvelle_villes
Exemple #2
0
def insert_bien(liste_dico):
   
    liste_ville = []
    nouvelle_villes = []
    
    #recuperation des donnees contenues dans la tables villes
    query = Ville.select()
    for v in query :
        if v.nom not in liste_ville: 
            liste_ville += [v.nom]
    
    for d in liste_dico:
        
        try :  
            
            prix, prix_metre_carre, surface = calcul(d["prix"],
                                            d["prix_metre"])
            if prix != None:
                prix = float(prix)  
            else:
                prix = 0     
            if prix_metre_carre != None:
                prix_m = prix_metre_carre 
            else:
                prix_m = 0    
            if surface != None:
                surface = int(surface) 
            else:
                surface = 0
            
            if d["ville"][-1] == " ":
                ville = d["ville"][:-1]
            else :
                 ville = d["ville"]
            
            ville = ville.replace("'"," ")
            
            if ville not in liste_ville:
                liste_ville += [ville]
                nouvelle_ville = Ville.create(nom = ville)
                #la liste nouvelle_villes permet de récuperer les donnees 
                #de cette ville par la suite
                nouvelle_villes += [nouvelle_ville]
            datep = d["date"]        
            datep = datep.replace(" ","")
            datep = datep.replace("/","")
            datep = datetime.datetime.strptime(datep, "%d%m%Y").date()
            datec = datetime.datetime.now()
            
            query = "call insert_biens('"+ville+"','"+d['cp']+"','"
            query += d['quartier']+"','"+d['dpe']+"','"+d['energie']+"','"
            query += d['description'].replace("'","?").replace("%","$")+"','"+str(d['annee'])+"','"+d['taxe_f']
            query +="','"+ d['contact']+"','"+str(datep)+"','"+d['lien']+"','"+str(prix)+"','"
            query += str(surface) +"','"+str(prix_m)+"','"+str(d['id_type'])+"','"+str(datec)+"','"
            query += str(d['nb_chambre'])+"','"+d['cave'] +"','"+d['place']+"','"+d['surface_t']
            query += "','"+d['ext']+ "')" 
            db.execute_sql(query)
            
        except Exception as error :
            
            print(error)
            pass
        
    return nouvelle_villes