In [5]:
import csv, re

In [6]:
file = "data/pottery_failed_saves_v9.csv"

In [7]:
with open(file, 'r', encoding ='utf-8') as data:
    reader = csv.reader(data)
    datalist = list(reader)

In [8]:
failed_saves = []
failed_evals =[]
eval_counter = 0
save_counter = 0
for x in datalist[1:]:
    string = """{}({}="{}",{}="{}")""".format(x[0], x[1], x[2], x[3], x[4])
    #print(string)
    try:
        temporary_object = eval(string)
        #print("eval good", string)
        eval_counter = eval_counter+1
    except:
        #print("eval bad", string)
        failed_evals.append(string)
    try:
        temporary_object.save()
        save_counter = save_counter +1
    except:
        failed_saves.append(string)
    split_region = x[6].split("/")
    #print(split_region)
    region_objects = []
    for region_name in split_region:
        #print(region_name)
        new_region = DC_region.objects.get(name=region_name)
        region_objects.append(new_region)
    temporary_object.region=region_objects #region is a field name here #temporary_object is the same
    try:
        temporary_object.save()
        save_counter = save_counter +1
    except:
        failed_saves.append(string)
print(len(datalist))
print("saved {} entries; evaluated {} objects".format(save_counter, eval_counter))
print("Failed evals: ", failed_evals)
print("Failed saves: ", failed_saves)


6
saved 10 entries; evaluated 5 objects
Failed evals:  []
Failed saves:  []

In [ ]: