Конвертировать структуру XML в DataFrame, используя BeautifulSoup - python - PullRequest
0 голосов
/ 18 октября 2018

У меня есть приведенная ниже структура XML без красивой печати. ​​

<?xml version="1.0" encoding="UTF-8" ?><root><animals><tiger>10</tiger><lion>20</lion><fox>30</fox></animals></root>

Это мой код для преобразования структуры XML в Pandas df.

from bs4 import BeautifulSoup
import pandas as pd
file = open("testing.xml","r")
soup = BeautifulSoup(file.read(),'xml')
animals = soup.find_all('animals')
animal_list = []
for animal in animals:
   animal_list.append(animal.get_text())
animals_df = pd.DataFrame({'animals': animal_list})
animals_df

Но мой код не выдает корректныйрезультат.

Actual result
   animals
0   102030

Expected result
   animals
0   10
1   20
2   30

Может ли кто-нибудь помочь мне получить ожидаемый результат?

1 Ответ

0 голосов
/ 18 октября 2018

find_all возвращает список.Поскольку существует только один animals узел, вы должны использовать animals = soup.find('animals'), animals = soup.find_all('animals')[0] или for animal in animals[0]:

animals = soup.find('animals')
animal_list = []
for animal in animals:
    animal_list.append(animal.get_text())
print(pd.DataFrame({'animals': animal_list}))
#   animals
# 0      10
# 1      20
# 2      30
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...