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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將 XML 文件解析為 Python 對象..?

將 XML 文件解析為 Python 對象..?

溫溫醬 2022-08-11 20:16:11
我嘗試這樣做,但沒有得到如何做到這一點是我的xml.file<?xml version="1.0" encoding="utf-8"?><openerp><data>    <record name ="Collection Report" id="view_collection_report_tree" model="cl.wastemanager.collection.report">        <field name="description">Collection Report Tree</field>        <field name="model">ir.ui.view</field>        <field name="arch" type="xml">            <tree string="Collection Analysis">                <field name="hospital_no" type="string"/>                <field name="partner_id" type="integer"/>                <field name="district" type="string"/>                <field name="town" type="string"/>                <field name="date" type="string"/>                <field name="cat1_uom_count" type="integer"/>                <field name="cat1_uom_qty" type="float"/>                <field name="cat2_uom_count" type="integer"/>                <field name="cat2_uom_qty" type="float"/>                <field name="cat3_uom_count" type="integer"/>                <field name="cat3_uom_qty" type="float"/>                <field name="cat4_uom_count" type="integer"/>                <field name="cat4_uom_qty" type="float"/>                <field name="cat5_uom_count" type="integer"/>                <field name="cat5_uom_qty" type="float"/>                <field name="total_uom_count" type="integer"/>                <field name="total_uom_qty" type="float"/>                <field name="plant_id" type="integer"/>                <field name="vehicle_id" type="integer"/>            </tree>        </field>    </record></data></openerp>我想把它讀成一個python對象,就像字典列表一樣。因為標記是絕對固定的,所以我很想使用正則表達式(我非常擅長使用它們)。但是,我想我會檢查是否有人知道如何在這里輕松避免正則表達式。不過,我對SAX或其他解析沒有太多經(jīng)驗,但我愿意學習。我期待著看到如何在Python中沒有正則表達式的情況下快速完成此操作。感謝您的幫助!
查看完整描述

2 回答

?
慕勒3428872

TA貢獻1848條經(jīng)驗 獲得超6個贊

這是我使用熊貓從自己那里嘗試的,我能夠正確獲得輸出。


import pandas as pd

import xml.etree.ElementTree as etree


tree = etree.parse("Filename.xml") #enter your filename what you saved in your system


root = tree.getroot()


columns = ["name", "type"]


datatframe = pd.DataFrame(columns = columns)


for node in root[0][0][2][0]:


    name = node.get("name")


    type = node.get("type")


    datatframe = datatframe.append(pd.Series([name, type], index = columns), ignore_index = True)


print(datatframe)

我的輸出:


               name     type

0       hospital_no   string

1        partner_id  integer

2          district   string

3              town   string

4              date   string

5    cat1_uom_count  integer

6      cat1_uom_qty    float

7    cat2_uom_count  integer

8      cat2_uom_qty    float

9    cat3_uom_count  integer

10     cat3_uom_qty    float

11   cat4_uom_count  integer

12     cat4_uom_qty    float

13   cat5_uom_count  integer

14     cat5_uom_qty    float

15  total_uom_count  integer

16    total_uom_qty    float

17         plant_id  integer

18       vehicle_id  integer


查看完整回答
反對 回復 2022-08-11
?
拉丁的傳說

TA貢獻1789條經(jīng)驗 獲得超8個贊

您并沒有真正說明要實現(xiàn)的目標,但下面是從xml中提取數(shù)據(jù)的示例,在本例中,我從樹元素內(nèi)的字段中提取字段名稱和類型。


import xmltodict

with open("test.xml") as xml_file:

    my_xml = xmltodict.parse(xml_file.read())

    for field in my_xml["openerp"]["data"]["record"]["field"][2]["tree"]["field"]:

        print(f"{field['@name']}: {field['@type']}")

輸出


hospital_no: string

partner_id: integer

district: string

town: string

date: string

cat1_uom_count: integer

cat1_uom_qty: float

cat2_uom_count: integer

cat2_uom_qty: float

cat3_uom_count: integer

cat3_uom_qty: float

cat4_uom_count: integer

cat4_uom_qty: float

cat5_uom_count: integer

cat5_uom_qty: float

total_uom_count: integer

total_uom_qty: float

plant_id: integer

vehicle_id: integer


查看完整回答
反對 回復 2022-08-11
  • 2 回答
  • 0 關(guān)注
  • 178 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

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