Я импортирую переменный файл (например, variables.json) в поток воздуха, в котором одна переменная глубины-1 представляет собой следующий список:
{...
"var1": ["value1", "value2"],
...
}
Я пробовал 3 метода:
1). в командной строке: переменные воздушного потока -i variables.json
2). в интерфейсе airflow, admin -> Variables -> Choose file -> Import Variables
3). в интерфейсе воздушного потока admin -> Variables -> Create -> ключ ввода (т. е. Var1) и значение (т. е. ["value1", "value2"]) соответственно.
Метод 1 и 2 не удался, но успешно 3.
метод 1 возвращает информацию типа «15 из 27 переменных успешно обновлены», что означает, что некоторые переменные не были успешно обновлены
метод 2 показывает ошибку:
InterfaceError: (sqlite3.InterfaceError) Ошибка привязки параметра 1 - возможно, неподдерживаемый тип. [SQL: переменная u'INSERT INTO («ключ», val, is_encrypted) ЗНАЧЕНИЯ (?,?,?) '] [Параметры: (u'var1', [u'value1 ', u'value2'], 0) ] (Справочная информация об этой ошибке: http://sqlalche.me/e/rvf5)
Я нашел и нашел эту тему: InterfaceError: (sqlte3.InterfaceError) Ошибка параметра привязки 0 .
Похоже, что sqlite не поддерживает тип списка.
Я также проверил случай, когда переменная вложенности (здесь, например, var2_1) была списком, подобным этому
{...
"var2": {"var2_1": ["A", "B"]},
...
}
все вышеперечисленные 3 метода работают.
Итак, мои вопросы:
(1), почему метод 1 и 2 потерпел неудачу, но 3 успешно для переменной глубины 1, являющейся списком?
(2) почему вложенная переменная (deep-2,3, ...) может быть списком без проблем?