python - 作业8:读取xml格式数据(附代码)


github指路 冲冲冲冲冲

----------------------------------原文–如下--------------------------------

作业

作业的具体描述👇,就是读取一个特定的xml数据,再将里面的数据整合起来存成一个DataFrame的数据结构,然后在python里面print出来= =(大概是这个意思)
作业8

xml格式的数据(分析)

先看看这个xml里面到底有些什么东西–>>>

顺便加了点注释(我随便写写你随便看看
xml

然后,我们需要分析一下怎么处理这个数据,ok,首先这个数据里面有很多个cd,(废话随便说一说……)然后他们都是并列的都有相同的一些属性比如上面提到的歌名、作者、国家、公司、价格、年份啥的,所以我们就可以,把不同的cd列成表格

大概就是= =👇这个样子
dataframe

那么问题来了,该怎么把这个数据读下来存进去呢

换个说法,怎么把xml里的数据拿到手再转换成dataframe呢

回答回答:一步步来,先是拿到xml里的数据,最简单的就是把数据输出来看看先
daim

然后再把得到的数据变成dataframe就可以了= =

怎么转,我用的时最简单的办法–>

# 直接采用字典做参数
my_dict = {1: ['1', '3'], 2: ['1', '2'], 3: ['2', '4']}
print(pd.DataFrame(my_dict))

参考代码

然后具体其他的话就直接参考下面的代码吧= =

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/11/5 10:53
# @Author : Chen Shan
# Function :Using Python to read data in XML format and store it in data frame format

from lxml import objectify
import xml.etree.cElementTree as et   # 读取xml文件的包
import pandas as pd

xml_tree = et.ElementTree(file='../py-data/8_cd_catalog.xml')  # 文件路径
dict = {'TITLE':[], 'ARTIST':[], 'COUNTRY':[],'COMPANY':[],'PRICE':[],'YEAR':[]}

root = xml_tree.getroot()

for sub_node in root:
    for node in sub_node:
        print(node, node.tag, node.attrib, node.text)
        ……
……
print(data_frame)

运行结果

运行结果

=-=-=-=-=-=-=-=-=屯屯屯屯屯=-=-=-=-=-=-=-=-=

2020/02/04 更新code

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/11/5 10:53
# @Author : Chen Shan
# Function :Using Python to read data in XML format and store it in data frame format

from lxml import objectify
import xml.etree.cElementTree as et   # 读取xml文件的包
import pandas as pd

xml_tree = et.ElementTree(file='../py-data/8_cd_catalog.xml')  # 文件路径
dict = {'TITLE':[], 'ARTIST':[], 'COUNTRY':[],'COMPANY':[],'PRICE':[],'YEAR':[]}

root = xml_tree.getroot()

for sub_node in root:
    for node in sub_node:
        # print(node, node.tag, node.attrib, node.text)
        dict[node.tag].append(node.text)
data_frame = pd.DataFrame(dict)
print(data_frame)
  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值