Как эффективно создавать таблицы из файлов XML с помощью Python? - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь найти лучшее решение для проблемы ниже. Я использую Python, чтобы взять XML-файл, найти интересующие меня элементы и вернуть связанные с ними значения. Если элементы отсутствуют, я бы хотел вернуть нулевое, нулевое или эквивалентное значение.

В данный момент я использую синтаксис lxml и xpath, но мы находим его довольно медленным, поскольку у меня естьциклически проходить по множеству одного и того же элемента, чтобы проверить в python, существует ли значение или нет.

Я использую xpath для создания пользовательского словаря, из которого затем я могу слиться во что-то вроде Pandas.

Пример структуры:


Holding 1 - Contains 3 children

<Holding id = 1>
  <Name> x </Name>
  <Date> x </Date>
  <Flavour> x </Flavour>
</Holding>

Holding 2 - Contains only two children 

<Holding id = 2>
  <Name> y </Name>
  <Date> y </Date>
</Holding>

Мне нужно что-то, что, если Flavor отсутствует, возвращает значение по умолчанию.

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

Список один будет иметь значения для имени, даты, вкуса. Список два будет иметь только значения для имени и даты.

Пример ниже. Я просматриваю каждое портфолио, каждый держит и вытаскивает текст для Ранга.

Dict['Rank'] = root.xpath(f'//ns:Portfolio[{each_portfolio + 1}]/ns:Holdings/*[{each_holding + 1}]/ns:Rank/text()', namespaces = {'ns' : nsurl}))

Любая помощь будет высоко ценится.

...