def run(self): db_session = self.db_session while True: work_data = self.queue.get() species_name = work_data[0] species_key = work_data[1] obj = OccurrenceSearch() data, no_data = obj.search(taxon_key=species_key) species_obj = db_session.query(Species).filter(Species.species_name == species_name).one() species_obj.in_process = True db_session.commit() if len(no_data): species_obj.have_un_coordinate_data = True species_obj.un_coordinate_data = json.dumps(no_data) db_session.commit() if len(data): for item in data: longitude = item[0] latitude = item[1] country_code = item[2] occurrence_obj = Occurrence(species_name=species_name, longitude=longitude, latitude=latitude, country_code=country_code) db_session.add(occurrence_obj) db_session.commit() else: species_obj.no_data = True db_session.commit() self.queue.task_done()
def collect_record_data(root_dir): session = create_session() species_name_list = session.query(Species).filter(Species.in_process == False, Species.name_correct == True).all() for species_obj in species_name_list: species_name = species_obj.species_name species_key = species_obj.species_key obj = OccurrenceSearch() data, no_data = obj.search(taxon_key=species_key) species_obj = session.query(Species).filter(Species.species_name == species_name).one() species_obj.in_process = True session.commit() if len(no_data): species_obj.have_un_coordinate_data = True session.commit() # species_obj.un_coordinate_data = json.dumps(no_data) species_obj.un_coordinate_data = json.dumps(no_data) session.commit() if len(data): for item in data: longitude = item[0] latitude = item[1] country_code = item[2] occurrence_obj = Occurrence( species_name=species_name, longitude=longitude, latitude=latitude, country_code=country_code ) session.add(occurrence_obj) session.commit() else: species_obj.no_data = True session.commit() return None