diff --git a/tools/import_validation/runner.py b/tools/import_validation/runner.py index bcf83fb06e..c2f5ba271a 100644 --- a/tools/import_validation/runner.py +++ b/tools/import_validation/runner.py @@ -191,7 +191,8 @@ def _load_differ_df_from_mcf(self, input_dir: str) -> pd.DataFrame: stats[current_var][diff_type] += 1 if not stats: - return pd.DataFrame() + return pd.DataFrame( + columns=['StatVar', 'ADDED', 'DELETED', 'MODIFIED']) rows = [] for var, counts in stats.items(): diff --git a/tools/statvar_importer/mcf_file_util.py b/tools/statvar_importer/mcf_file_util.py index 7f6177c52c..8120b2c055 100644 --- a/tools/statvar_importer/mcf_file_util.py +++ b/tools/statvar_importer/mcf_file_util.py @@ -826,7 +826,7 @@ def normalize_list(value: str, sort: bool = True) -> str: value_list = get_value_list(value) has_quotes = True else: - value_list = value.split(',') + value_list = [v.strip() for v in value.split(',')] values = [] if sort: value_list = sorted(value_list) @@ -931,6 +931,10 @@ def normalize_value( if value[0] == '"' and value[-1] == '"' and len(value) > 100: # Retain very long strings, such as geoJsonCoordinates, as is. return value + if value.startswith('[') and value.endswith(']') and ',' in value: + inner_list = value[1:-1].strip() + normalized_list = normalize_list(inner_list) + return f'[{normalized_list}]' if ',' in value and maybe_list: return normalize_list(value) if value[0] == '[':