#DATINI occupazioni, associa gli ID Restore ai luoghi privi di ID gerarchici import csv import codecs import pandas as pd import re import os import io import tokenize output = open('association_occupation_DATINI_luoghi_restore.csv', 'w') csvwriter = csv.writer(output) params = ['recordid', 'occupation_1', 'place_occupation_1_PROVINCIA', 'ID_provincia_1', 'place_occupation_1_COMUNE', 'ID_comune_1', 'place occupation 1 MICROTOPONIMO', 'ID_micro_1', 'place occupation 1 ENTE', 'ID_ente_1', 'occupation_2', 'place_occupation_2_PROVINCIA', 'ID_provincia_2', 'place_occupation_2_COMUNE', 'ID_comune_2', 'place occupation 2 MICROTOPONIMO', 'ID_micro_2', 'place occupation 2 ENTE', 'ID_ente_2'] csvwriter.writerow(params) def get_ID_micro (idmicro, micro): link_file = open('//Users/leonardocanova/Library/CloudStorage/OneDrive-UniversityofPisa(1)/Documenti/Progetti università/OVI/Programmazione/ASPO/Luoghi/Toponimi Gettatelli - TUTTI toponimi - Nuovo.csv') reader = csv.DictReader(link_file) for row in reader: ass_micro = row['TOPONIMO'].lower() if idmicro == "" and " ": if micro != "" and " ": if micro == ass_micro: return (row['ID RESTORE']) else: return idmicro def get_ID_comune (idcomune, comune): link_file = open('/Users/leonardocanova/Library/CloudStorage/OneDrive-UniversityofPisa(1)/Documenti/Progetti università/OVI/Programmazione/ASPO/Luoghi/Toponimi Gettatelli - TUTTI toponimi - Nuovo.csv') reader = csv.DictReader(link_file) for row in reader: for row in reader: ass_comune = row['TOPONIMO'].lower() if idcomune == "" and " ": if comune != "" and " ": if comune == ass_comune: return (row['ID RESTORE']) else: return idcomune def get_ID_provincia (idprovincia, provincia): link_file = open('/Users/leonardocanova/Library/CloudStorage/OneDrive-UniversityofPisa(1)/Documenti/Progetti università/OVI/Programmazione/ASPO/Luoghi/Toponimi Gettatelli - TUTTI toponimi - Nuovo.csv') reader = csv.DictReader(link_file) for row in reader: ass_provincia = row['TOPONIMO'].lower() if idprovincia == "" and " ": if provincia != "" and " ": if provincia == ass_provincia: return (row['ID RESTORE']) else: return idprovincia csv_occupation = open('/Users/leonardocanova/Library/CloudStorage/OneDrive-UniversityofPisa(1)/Documenti/Progetti università/OVI/Programmazione/ASPO/Luoghi/association_occupation_DATINI_luoghi.csv') reader = csv.DictReader(csv_occupation) for row in reader: line = [] recordid = row['recordid'] occupation_1 = row['occupation_1'] occupation_2 = row['occupation_2'] place_occupation_1_PROVINCIA = row['place_occupation_1_PROVINCIA'].lower() place_occupation_1_COMUNE = row['place_occupation_1_COMUNE'].lower() place_occupation_1_MICROTOPONIMO = row['place occupation 1 MICROTOPONIMO'].lower() place_occupation_1_ENTE = row['place occupation 1 ENTE'].lower() place_occupation_2_PROVINCIA = row['place_occupation_2_PROVINCIA'].lower() place_occupation_2_COMUNE = row['place_occupation_2_COMUNE'].lower() place_occupation_2_MICROTOPONIMO = row['place occupation 2 MICROTOPONIMO'].lower() place_occupation_2_ENTE = row['place occupation 2 ENTE'].lower() ID_provincia_1 = row ['ID_provincia_1'] ID_comune_1 = row ['ID_comune_1'] ID_micro_1 = row ['ID_micro_1'] ID_ente_1 = row ['ID_ente_1'] ID_provincia_2 = row ['ID_provincia_2'] ID_comune_2 = row ['ID_comune_2'] ID_micro_2 = row ['ID_micro_2'] ID_ente_2 = row ['ID_ente_2'] ID_provincia_1_R = get_ID_provincia (ID_provincia_1, place_occupation_1_PROVINCIA) ID_comune_1_R = get_ID_comune (ID_comune_1, place_occupation_1_COMUNE) ID_micro_1_R = get_ID_micro (ID_micro_1, place_occupation_1_MICROTOPONIMO) ID_provincia_2_R = get_ID_provincia (ID_provincia_2, place_occupation_2_PROVINCIA) ID_comune_2_R = get_ID_comune (ID_comune_2, place_occupation_2_COMUNE) ID_micro_2_R = get_ID_micro (ID_micro_2, place_occupation_2_MICROTOPONIMO) line.append (recordid) line.append (occupation_1) line.append (place_occupation_1_PROVINCIA) line.append (ID_provincia_1_R) line.append (place_occupation_1_COMUNE) line.append (ID_comune_1_R) line.append (place_occupation_1_MICROTOPONIMO) line.append (ID_micro_1_R) line.append (place_occupation_1_ENTE) line.append (ID_ente_1) line.append (occupation_2) line.append (place_occupation_2_PROVINCIA) line.append (ID_provincia_2_R) line.append (place_occupation_2_COMUNE) line.append (ID_comune_2_R) line.append (place_occupation_2_MICROTOPONIMO) line.append (ID_micro_2_R) line.append (place_occupation_2_ENTE) line.append (ID_ente_2) csvwriter.writerow(line) #print (line) output.close()