第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

將 XML 文件轉(zhuǎn)換為 CSV 文件的有效方法?

將 XML 文件轉(zhuǎn)換為 CSV 文件的有效方法?

婷婷同學(xué)_ 2023-08-08 17:54:05
我正在嘗試找到一種使用 Python 將 xml 文件轉(zhuǎn)換為 csv 文件的方法。我想這樣做,以便腳本能夠解析每個(gè)警報(bào)的 xml 文件(請(qǐng)參閱下面的 xml 片段)。因此,它將創(chuàng)建一個(gè) xls 文件,其中包含 、 、 和 的列,eventType類似于probableCause以下description格式severities:我嘗試過的(小樣本):from logging import rootfrom xml.etree import ElementTreeimport osimport csvtree = ElementTree.parse('Fault.xml')sitescope_data = open('Out.csv', 'w', newline='', encoding='utf-8')csvwriter = csv.writer(sitescope_data)col_names = ['eventType', 'probableCause', 'description']csvwriter.writerow(col_names)root = tree.getroot()for eventData in root.findall('alarms'):    event_data = []    event = eventData.find('alarm')    event_id = event.find('eventType')    if event_id != None :        event_id = event_id.text    event_data.append(event_id)    csvwriter.writerow(event_data)sitescope_data.close()
查看完整描述

1 回答

?
烙印99

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個(gè)贊

root = tree.getroot()


def get_uri(elem):

    if elem.tag[0] == "{":

        uri, ignore, tag = elem.tag[1:].partition("}")

        return f"{{{uri}}}"

    return ""


uri = get_uri(root)


def recurse(root):

    for child in root:

        recurse(child)

        print(child.tag)

    for event in root.findall(f'{uri}alarm'):

        event_data = []

        event_id = event.find(f'{uri}eventType')

        if event_id != None :

            event_id = event_id.text

        event_data.append(event_id)


        probableCause = event.find(f'{uri}probableCause')

        if probableCause != None:

            probableCause = probableCause.text

        event_data.append(probableCause)


        severities = event.find(f'{uir}severities')

        if severities:

            severity_data = ','.join([sv.text for sv in severities.findall('f{uri}severity')])

            event_data.append(severity_data)

        else:

            event_data.append("")


        csvwriter.writerow(event_data)

        


recurse(root)

需要注意的事項(xiàng):

  1. 使用遞歸遍歷 XML

  2. print 語句將顯示您的每個(gè)標(biāo)簽都有來自根目錄中 xmlns 屬性的 {urn:nortel:namespaces:mcp:faults} ,這可能是最讓您困惑的地方。我添加了一個(gè)函數(shù)來獲取此“uri”文本并將其添加到每個(gè)標(biāo)簽前面。

  3. 每次寫入 csv 時(shí),您都需要附加多于一列


查看完整回答
反對(duì) 回復(fù) 2023-08-08
  • 1 回答
  • 0 關(guān)注
  • 227 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)