-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgrava_dados_imoveis.py
121 lines (89 loc) · 3.42 KB
/
grava_dados_imoveis.py
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
import openpyxl
import mysql.connector
global linhas
# Configurações do banco de dados
db_config = {
'user': 'user',
'password': 'password',
'host': 'localhost',
'database': 'banco_dados'
}
# Função para verificar se um registro está cadastrado no banco de dados
def verificar_registro_cadastrado(registro1, registro2):
try:
connection = mysql.connector.connect(**db_config)
cursor = connection.cursor()
# Query para verificar o registro no banco de dados
query = "select count(*) from imoveis where latitude = %s and longitude = %s"
cursor.execute(query, (registro1, registro2))
result = cursor.fetchone()[0]
return result > 0 # Retorna True se o registro estiver cadastrado, False caso contrário
except mysql.connector.Error as error:
print(f"Erro ao verificar registro no banco de dados: {error}")
return False
finally:
if connection.is_connected():
cursor.close()
connection.close()
# Função para inserir os dados no banco de dados
def inserir_dados(dados):
global reg_db
global reg_not_db
cont = 0
try:
connection = mysql.connector.connect(**db_config)
cursor = connection.cursor()
# Query de inserção
query = "insert into imoveis (titulo, imobiliaria, endereco, numero, cep, bairro, cidade, uf, area_metragem, nr_quartos, nr_banheiros, vr_iptu, vr_aluguel, vr_metro, latitude, longitude, tempo_anuncio, link_anuncio) values (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"
# Inserindo os dados linha por linha
for linha in dados:
cont = cont + 1
print(f'Linha: {cont} ')
print(linha)
#if linha[14] != 0:
# registro_cadastrado = verificar_registro_cadastrado(linha[14], linha[15])
#if not registro_cadastrado:
reg_not_db += 1
cursor.execute(query, linha)
#else:
# reg_db += 1
connection.commit()
print("Dados inseridos com sucesso!")
except mysql.connector.Error as error:
print(f"Erro ao inserir dados no banco de dados: {error}")
finally:
if connection.is_connected():
cursor.close()
connection.close()
# Função para ler o arquivo XLSX
def ler_arquivo_xlsx(nome_arquivo):
global linhas
linhas = 0
try:
workbook = openpyxl.load_workbook(nome_arquivo)
sheet = workbook.active
# Ignorando o cabeçalho da planilha
dados = []
for row in sheet.iter_rows(min_row=2, values_only=True):
dados.append(row)
linhas = linhas + 1
#print(dados[0])
return dados
except FileNotFoundError:
print("Arquivo não encontrado.")
return []
except openpyxl.Error as error:
print(f"Erro ao ler arquivo XLSX: {error}")
return []
# Nome do arquivo XLSX
nome_arquivo = 'relatorio.xlsx'
# Lendo o arquivo XLSX
dados = ler_arquivo_xlsx(nome_arquivo)
global reg_db
global reg_not_db
reg_db = 0
reg_not_db = 0
if dados:
inserir_dados(dados)
print(f'Total de registros cadastrados...: {reg_not_db}')
print(f'Total de registros já cadastrados: {reg_db}')