def row_to_pupil(row): urn = row.get('KS4_URN') for key in SCHOOL_FIELD_MAP.keys(): del row[key] kwargs = {} for _type in (int, bool, float, str): for field_name in PUPIL_FIELD_MAP.get(_type): kwargs[field_name] = convert(_type, row[field_name], field_name) kwargs['school'] = get_school(urn) return Pupil(**kwargs)
def row_to_pupil(row): urn = row.get("KS4_URN") for key in SCHOOL_FIELD_MAP.keys(): del row[key] kwargs = {} for _type in (int, bool, float, str): for field_name in PUPIL_FIELD_MAP.get(_type): kwargs[field_name] = convert(_type, row[field_name], field_name) kwargs["school"] = get_school(urn) return Pupil(**kwargs)
def handle(self, *args, **options): seen = set() with open('rawdata/Appathon3_KS4_1011.txt', 'r') as f: reader = csv.DictReader(f, delimiter='\t') for row in reader: kwargs = {attr_name: row.get(code) for code, attr_name in SCHOOL_FIELD_MAP.items()} if kwargs['urn'] in seen: continue else: seen.add(kwargs['urn']) kwargs['postcode'] = get_postcode(kwargs['postcode']) School.objects.create(**kwargs)