Я хочу извлечь данные из XML и преобразовать их в Pandas Data Frame
Сначала я попытался импортировать с помощью Element Tree xml и просто распечатать некоторые столбцы с этим кодом , не повезло
Итак, пока мне удалось извлечь некоторые данные с помощью этого кода
import xml.etree.cElementTree as et
import pandas as pd
def getvalueofnode(node):
""" return node text or None """
return node.text if node is not None else None
def main():
""" main """
parsed_xml = et.parse("RTS_XTV100006361.xml")
dfcols = ['start', 'stop', 'channel', 'type', 'title', 'category']
df_xml = pd.DataFrame(columns=dfcols)
for node in parsed_xml.getroot():
start = node.attrib.get('start')
stop = node.attrib.get('stop')
channel = node.attrib.get('channel')
type = node.attrib.get('type')
title = node.find('title')
category = node.find('category')
df_xml = df_xml.append(
pd.Series([start, stop, channel, type, getvalueofnode(category), getvalueofnode(title)], index=dfcols),
ignore_index=True)
print (df_xml)'
Но заголовок и категория все еще пусты
Это пример XML:
<?xml version="1.0" encoding="utf-8"?>
<tv xmlns="http://www.xmltv.org/xmltv" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<programme ID="58135" start="20200528000000 +0200" stop="20200528013000 +0200" channel="XTV100006361" recordable="Y" npvrenable="Y" cpvrenable="N" type="program" deleted="false">
<blackoutInfo>
<isBlackout>1</isBlackout>
<groupIDs>2</groupIDs>
<streams>00000001</streams>
</blackoutInfo>
<title lang="sr"><![CDATA[Yoga retreat]]></title>
<category lang="sr"><![CDATA[Entertainment]]></category>
<icon src="default_playbill.png" ptype="3" />
<episode-num system="xmltv_ns">0.0.0</episode-num>
</programme>
<programme ID="58136" start="20200528013000 +0200" stop="20200528030000 +0200" channel="XTV100006361" recordable="Y" npvrenable="Y" cpvrenable="N" type="program" deleted="false">
<blackoutInfo>
<isBlackout>1</isBlackout>
<groupIDs>2</groupIDs>
<streams>00000001</streams>
</blackoutInfo>
<title lang="sr"><![CDATA[Doctor Who]]></title>
<category lang="sr"><![CDATA[Entertainment]]></category>
<icon src="default_playbill.png" ptype="3" />
<episode-num system="xmltv_ns">0.0.0</episode-num>
</programme>
</tv>
желаемый результат, который я хотел бы, чтобы я получил следующие столбцы:
канал, начало, остановка, заголовок, категория
