Python学校_任务14_解析XML和json

XML和json是常见的两种轻量级数据存储格式,Web和某些配置文件中经常用到二者:

本示例介绍简单的解析XML和json的过程,暂不涉及互转换等操作

XML和json的语法都很简单,此处不再赘述

示例用XML文件:

<?xml version="1.0" encoding="utf-8" ?>
<family id="20200202">
    <dad name="David">
        <age>40</age>
        <interest>football</interest>
    </dad>
    <mom name="Penny">
        <age>39</age>
        <interest>movie</interest>
    </mom>
    <apartment name="House_1">
        <address>四川省天府三街1号</address>
        <floor>15</floor>
    </apartment>
    <apartment name="House_2">
        <address>四川省天府三街2号</address>
        <floor>20</floor>
    </apartment>
</family>

解析程序:

# - Tutorial 14
# - 2020-2-10
# - Johan
# - 题目:
#   1、打开XML文件,读取内容
#   2、读取JSON字符串内容

"""
关键实现:
1、DOM库的使用
2、json库的使用
3、字典类型
"""

# DOM方式解析XML
from xml.dom.minidom import parse
import xml.dom.minidom

# 解析json的库
import json


#################### 解析XML内容 ######################
dom_tree = xml.dom.minidom.parse('xmldemo.xml')
family = dom_tree.documentElement   # 根元素
if family.hasAttribute('id'):
    print('Family id : %s' % family.getAttribute('id'))
apartments = family.getElementsByTagName('apartment')   # 获取所有apartment元素
for apartment in apartments:
    id = apartment.getAttribute('name')
    address = apartment.getElementsByTagName('address')[0].childNodes[0].data
    floor = apartment.getElementsByTagName('floor')[0].childNodes[0].data
    print('[%s]%s%s楼' % (id, address, floor))

# 同理,获取其他元素内容
dic = {'football': '足球', 'movie': '电影'}
print('成员:')
dad = family.getElementsByTagName('dad')
mom = family.getElementsByTagName('mom')
print('父亲:%s[%s岁]  兴趣:%s' %
      (dad[0].getAttribute('name'),
       dad[0].getElementsByTagName('age')[0].childNodes[0].data,
       dic[dad[0].getElementsByTagName('interest')[0].childNodes[0].data]))
print('母亲:%s[%s岁]  兴趣:%s' %
      (mom[0].getAttribute('name'),
       mom[0].getElementsByTagName('age')[0].childNodes[0].data,
       dic[mom[0].getElementsByTagName('interest')[0].childNodes[0].data]))

################### 解析json #######################
json_text = '{"name": "文明6", "文件大小": "9G", "最低内存": "4G"}'
content = json.loads(json_text)
print('%s   %s   %s' % (content['name'], content['文件大小'], content['最低内存']))

运行结果:

如果把上面的XML文件写成json格式,会得到一个更短更轻巧的文件,也能看出json是相比之下更轻量级的格式

XML优势在于数据的树状结构明显,从属关系清晰,基本能一目了然,json则着重考虑轻量化数据存储

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值