Returns a string of either datastore[key], or 'ND' if datastore[key] doesn't exist formatted for a CSV report
        Replace any commas with semicolons.
        :param key: Dictionary key to be used to return the value from datastore[key]
        :param number: Boolean whether the type of the attribute is a number (int, float, etc). Will return 0
        instead of ND

def returnattr(self, key, number=False):
        """
        Returns a string of either datastore[key], or 'ND' if datastore[key] doesn't exist formatted for a CSV report
        Replace any commas with semicolons.
        :param key: Dictionary key to be used to return the value from datastore[key]
        :param number: Boolean whether the type of the attribute is a number (int, float, etc). Will return 0
        instead of ND
        """
        # String to return if the key is not in the datastore
        negative_return = 'ND,' if not number else '0,'
        try:
            if key in self.datastore:
                # Return the string of the value with any commas replaced by semicolons. Append a comma to the
                # end of the string for the CSV format
                return_key = '{},'.format(str(self.datastore[key]).replace(',', ';'))
                if not number:
                    return return_key
                else:
                    if return_key == 'ND,':
                        return negative_return
                    else:
                        return return_key
            else:
                return negative_return
        except AttributeError:
            return negative_return