@@ -333,27 +333,31 @@ def clean_doi(doi):
333333 list_of_errors .append (str (e ))
334334 print ('IntegrityError ' , x , e )
335335 err += 1
336+ continue
336337 except psql .DataError as e :
337338 if str (e ) not in list_of_errors :
338339 list_of_errors .append (str (e ))
339340 print ('DataError ' , x , e )
340341 conn = psql .connect (db_url )
341342 cursor = conn .cursor ()
342343 err += 1
344+ continue
343345 except AttributeError as e :
344346 if str (e ) not in list_of_errors :
345347 list_of_errors .append (str (e ))
346348 print ('AttributeError ' , x , e )
347349 conn = psql .connect (db_url )
348350 cursor = conn .cursor ()
349351 err += 1
352+ continue
350353 except Exception as e :
351354 if str (e ) not in list_of_errors :
352355 list_of_errors .append (str (e ))
353356 print ('Error ' , x , e )
354357 conn = psql .connect (db_url )
355358 cursor = conn .cursor ()
356359 err += 1
360+ continue
357361
358362 temperature = METADATA .iloc [x ]['Temperature' ]
359363 precip = METADATA .iloc [x ]['Precipitation' ]
@@ -455,32 +459,39 @@ def clean_doi(doi):
455459 conn .commit ()
456460 else :
457461 VAR_ = res [0 ][0 ]
458- samplename = row .samplename
459- try :
460- if row ['count' ] > 0 :
461- val = round (row ['count' ])
462- try :
462+ try :
463+ if row ['count' ] > 0 :
464+ val = round (row ['count' ])
465+ try :
466+ cursor .execute (
467+ "INSERT INTO p_counts (sampleName, var_, count) "
468+ "VALUES ('%s', %d, %d)" % (
469+ samplename , VAR_ , val ))
470+ conn .commit ()
471+ except psql .IntegrityError as e :
472+ conn = psql .connect (db_url )
473+ cursor = conn .cursor ()
474+ if 'duplicate key value violates unique constraint "p_counts_pkey"' in str (e ):
475+ cursor .execute (
476+ "SELECT count FROM p_counts WHERE "
477+ "sampleName = '%s' AND var_ = %d" % (
478+ samplename , VAR_ ))
479+ new_val = cursor .fetchall ()[0 ][0 ] + val
463480 cursor .execute (
464- "INSERT INTO p_counts (sampleName, var_, count) "
465- "VALUES ( '%s', %d, %d) " % (
466- samplename , VAR_ , val ))
481+ "UPDATE p_counts SET count=%d WHERE "
482+ "sampleName = '%s' AND var_ = %d " % (
483+ new_val , samplename , VAR_ ))
467484 conn .commit ()
468- except psql .IntegrityError as e :
469- conn = psql .connect (db_url )
470- cursor = conn .cursor ()
471- if 'duplicate key value violates unique constraint "p_counts_pkey"' in str (e ):
472- cursor .execute (
473- "SELECT count FROM p_counts WHERE "
474- "sampleName = '%s' AND var_ = %d" % (
475- samplename , VAR_ ))
476- new_val = cursor .fetchall ()[0 ][0 ] + val
477- cursor .execute (
478- "UPDATE p_counts SET count=%d WHERE "
479- "sampleName = '%s' AND var_ = %d" % (
480- new_val , samplename , VAR_ ))
481- conn .commit ()
482- except Exception :
483- print (samplename , VAR_ , "!" + str (row ['count' ]) + "!" )
485+ except Exception as e :
486+ error = (samplename , VAR_ , "!" + str (row ['count' ]) + ":" +
487+ str (e ))
488+ if error not in list_of_errors :
489+ list_of_errors .append (error )
490+ print ('Error ' , error )
491+ conn = psql .connect (db_url )
492+ cursor = conn .cursor ()
493+ err += 1
494+ continue
484495
485496
486497assert err == 0 , '\n ' .join (list_of_errors )
0 commit comments