У меня есть следующий файл конфигурации, это .yml со следующими полями.
filter:
mic :
- 'XMAD'
- 'XSTUB'
cfi :
- 'CF5334'
Моя проблема заключается в следующем.
Я загружаю строки из файла XML,они имеют следующую структуру.
{'isin': 'CA86882A1093', 'cfi': 'ECNXFR', 'currency': 'EUR', 'mic': 'FRAB', 'date': '2019-02-19'}
С моим полем фильтра конфигурации .yml я хочу принять только те из них, которые следуют моему фильтру, в данном случае это мой фильтр.
{'mic': ['XMAD', 'XSTUB'], 'cfi': ['CF5334']}
Как вы можете видеть, они могут быть списком, в этом случае мой фильтр позволяет загружать только те, которые имеют в микрофоне XMAD или XSTUB, а cfi может иметь только 'CF5334'.
Мой код работает нормально, если онитолько одно значение, но оно не работает, если у меня есть список возможных значений, как вы можете видеть в поле mic.
Вот мой код.
for row in xml_file:
setf = self.filter.items()
if setf in (row.items() & setf):
yield security
Любойидея?