> maybe this instead
>
>     for row in attributes_reader:
>         attributes = {}
>         if len(row) > 1:
>             for index in range(0, min(len(ATTRIBUTE_NAMES), len(row)) - 1):
>                 attributes.update({ATTRIBUTE_NAMES[index]: row[index + 1]})
>             field_attributes.update({
>                 int(row[0]): attributes})
>     return field_attributes

yes, that looks better