diff --git a/csvwlib/converter/ModelConverter.py b/csvwlib/converter/ModelConverter.py index ab18c8a..10e44bc 100644 --- a/csvwlib/converter/ModelConverter.py +++ b/csvwlib/converter/ModelConverter.py @@ -201,7 +201,9 @@ def _normalize_column_names(self): for i, column in enumerate(table['tableSchema']['columns'], start=1): if 'name' not in column: language = JSONLDUtils.language(self.metadata['@context'], table) - titles = column['titles'] if type(column['titles']) is list else [column['titles']] + titles = column.get('titles',[]) + if type(titles) is not list: + titles = [titles] if language is None: column['name'] = DOPUtils.natural_language_first_value(titles) else: diff --git a/csvwlib/utils/DOPUtils.py b/csvwlib/utils/DOPUtils.py index 628179a..da932fc 100644 --- a/csvwlib/utils/DOPUtils.py +++ b/csvwlib/utils/DOPUtils.py @@ -7,4 +7,4 @@ def natural_language_first_value(property_value): if type(property_value) is str: return property_value elif type(property_value) is list: - return property_value[0] + return next(iter(property_value or []), None)