2015-08-25 2 views
2

Я очень успешно использовал пакет xmltodict python для синтаксического анализа своей строки xml в словаре python.Python xmltodict Force Array с атрибутом

Тем не менее, у меня есть следующий вопрос:

<child> 
    <episode>["a","b"]</episode> 
</child> 

разбирает как:

{ 
    child: { 
    episode: ["a","b"] 
    } 
} 

тогда:

<child> 
    <episode>["a","b"]</episode> 
    <episode>["c","d"]</episode> 
</child` 

разбирает как:

{ child: 
    { 
    episode: [ 
    ["a","b"], 
    ["c","d"] 
    ] 
    } 
} 

Это означает, что код, который я пишу, даст мне разные результаты в зависимости от того, какое детское наблюдение я просматриваю.

Что мне нужно - это указать способ разбора эпизода всегда как массив - аналогично этому .Net package. Какой был бы лучший способ (или a) сделать это в Python?

ответ

1

Попробуйте использовать функцию flatten на ключ "episodes"?

def flatten(it): 
    res = [] 
    for item in it: 
     if not isinstance(item, list): 
      res.append(item) 
      continue 
     res.extend(item) 
    return res 
Смежные вопросы