Извлечение данных этого XML в фрейм данных PythonPython

Программы на Python
Anonymous
Извлечение данных этого XML в фрейм данных Python

Сообщение Anonymous »

Я не могу заставить извлечение этих XML-данных в фрейм данных работать должным образом.
Это мой образец XML. На самом деле у меня есть несколько стеков «Entity», которые представляют одну строку данных в желаемом результате. Чтобы сэкономить место, я в с т а в и л с ю д а т о л ь к о о д и н э к з е м п л я р « E n t i t y » : < / p > < b r / > < c o d e > & l t ; E n t i t y C o l l e c t i o n & g t ; < b r / > < b r / > & l t ; E n t i t i e s & g t ; < b r / > < b r / > & l t ; E n t i t y & g t ; < b r / > < b r / > & l t ; A t t r i b u t e s & g t ; < b r / > < b r / > & l t ; K e y V a l u e P a i r O f s t r i n g a n y T y p e & g t ; < b r / > < b r / > & l t ; k e y & g t ; c l i e n t _ n u m b e r & l t ; / k e y & g t ; < b r / > < b r / > & l t ; v a l u e t y p e = & q u o t ; b : s t r i n g & q u o t ; & g t ; A B C 1 2 3 3 4 5 & l t ; / v a l u e & g t ; < b r / > < b r / > & l t ; / K e y V a l u e P a i r O f s t r i n g a n y T y p e & g t ; < b r / > < b r / > & l t ; K e y V a l u e P a i r O f s t r i n g a n y T y p e & g t ; < b r / > < b r / > & l t ; k e y & g t ; m y _ d a t a . c lient_type



my_type

my_data1

true

123



345









my_data.status



status

my_data1

true

123



67









my_data.date



date

my_data1

true

89

2024-01-01







my_data.country



country

my_data1

true

123



456









client_code

some_code456





my_data.my_data1id



my_data1id

my_data1

true

13

some_code123













my_data.client_type

client123





my_data.status

OK





my_data.country

some_country





some_code456



some-id



ID123








Элементы в ключе (или в AttributeLogicalName) должны быть заголовками. «Значение»/«Значение» должно быть фактическими данными. Это желаемый результат (первая строка).
Изображение

Поскольку данные очень вложенные, я попробовал использовать xml.etree, но не продвинулся далеко, так как не знал, как действовать здесь:

Код: Выделить всё

for _, elem in ET.iterparse(my_xml):
if len(elem) == 0:
print(f'{elem.tag} {elem.attrib} text={elem.text}')
else:
print(f'{elem.tag} {elem.attrib}')
Как получить желаемый результат?

Подробнее здесь: https://stackoverflow.com/questions/789 ... -dataframe

Вернуться в «Python»