Python 3(12)JSON/XML 解析

Python3 入门专栏

http://blog.csdn.net/column/details/19679.html


Python 处理 JSON 


python 提供了 json 模块用于处理 JSON 数据的编码解码,包含了以下2个函数:
  • json.dumps():对 json 数据进行编码;
  • json.loads():对 json 数据进行解码;
在 json 数据编码解码的过程中,python 原始类型和 json 类型会进行相互转换,它们的转换规则如下:
Python 原始类型JSON 类型
dictobject
strarray
int,floatnumber
True,Falsetrue,false
Nonenull

1)将 python 对象编码为 json 字符串

 
import json
# python dict 对象
user = {
    "name": "assad",
    "age": 20,
    "city": ["Guanzhou", "Chaozhou"]
}
# 将 python 对象编码为 json 字符串
json_str = json.dumps(user)
print(json_str)                 # 输出:{"name": "assad", "age": 20, "city": ["Guanzhou", "Chaozhou"]}
# 将 python 对象编码为 json 字符串,并写入文件中
with open("user_data.json", "w", encoding="utf-8") as output:
    json.dump(user, output)
    

2)将 json 字符串解码为 python 对象

 
import json
# 将 json 字符串其解码为 python 对象
json_str = '{"name": "assad", "age": 20, "city": ["Guanzhou", "Chaozhou"]}'
user = json.loads(json_str)
print(user['name'])           # 输出 :assad
# 从文件读取 json 字符串个,并将其解码为 python 对象
with open("user_data.json", "r", encoding="utf-8") as inputfile:
    global user
    user = json.load(inputfile)
print(user)




Python 解析 XML


python 在内置的 xml 模块中提供了以 dom 方式解析 XML 文本的支持

示例需要读取的xml文件如下,data.xml
 
<userlist>
    <user id="00012">
        <name>assad</name>
        <age>20</age>
        <city>Guanzhou</city>
    </user>
    <user id="00045">
        <name>Vecoty</name>
        <age>21</age>
        <city>Shanghai</city>
    </user>
    <user id="00152">
        <name>Bee</name>
        <age>34</age>
        <city>Beijing</city>
    </user>
</userlist>

DOM 方式解析 XML

 
import xml.dom.minidom
# 使用 minidom 解析器打开 XML 文档
dom_tree = xml.dom.minidom.parse("data.xml")
# 获取根节点
userlist = dom_tree.documentElement
# 获取根节点下的所有<user>节点
users = userlist.getElementsByTagName("user")
# 打印所有<user>节点信息
for user in users:
    print("-user info-")
    if user.hasAttribute("id"):
        print("id:", user.getAttribute("id"))    # 获取节点指定属性
    name = user.getElementsByTagName("name")[0]
    print("name:", name.childNodes[0].data)    # 获取节点值
    age = user.getElementsByTagName("age")[0]
    print("age:", age.childNodes[0].data)
    city = user.getElementsByTagName("city")[0]
    print("city:", city.childNodes[0].data)
    print()
# 输出:
# -user info-
# id: 00045
# name: Vecoty
# age: 21
# city: Shanghai
# 
# -user info-
# id: 00152
# name: Bee
# age: 34
# city: Beijing
# 
# -user info-
# id: 04502
# name: Lolo
# age: 16
# city: Shenzheng


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python数据解析JSONXML是指使用Python编程语言解析JSONXML格式的数据。其中JSON是一种轻量级的数据交换格式,常用于Web应用程序中的数据传递;XML是一种标记语言,可用于数据存储和传输。使用Python的内置库或第三方库,可以对JSONXML数据进行解析和处理。 ### 回答2: Python是一种流行的脚本语言,它被广泛用于数据解析和处理,包括解析jsonxml格式的数据。JSON是JavaScript对象表示法,一个轻量级的数据交换格式。XML是可扩展标记语言,也是一种常用的数据交换格式。在Python中,解析jsonxml数据的方法略有不同。 1. 解析JSON数据 Python内置了一个json模块,可以轻松地解析JSON数据。该模块包含两个主要函数,load()和loads()。load()函数将JSON数据从文件读取并解析Python对象,而loads()函数则将JSON字符串解析Python对象。例如,以下是解析JSON数据的样例代码: import json # 从文件中加载JSON数据 with open('data.json') as f: data = json.load(f) # 解析JSON字符串 json_str = '{"name": "John", "age": 30, "city": "New York"}' data = json.loads(json_str) 在上面的代码中,我们使用了json.load()函数从文件中加载JSON数据,并使用json.loads()函数将JSON字符串解析Python对象。 2. 解析XML数据 Python中的XML解析器包括xml.domxml.sax。使用xml.dom可以将整个XML文档解析为一个DOM对象树,而使用xml.sax则将解析器分离为一个解析器、一个文档和一个事件处理程序。以下是使用xml.dom解析XML数据的示例代码: import xml.dom.minidom # 从文件中加载XML数据 dom = xml.dom.minidom.parse('data.xml') # 获取根元素对象 root = dom.documentElement # 获取所有子元素 items = root.getElementsByTagName('item') # 遍历子元素 for item in items: id = item.getAttribute('id') name = item.getElementsByTagName('name')[0].childNodes[0].nodeValue desc = item.getElementsByTagName('description')[0].childNodes[0].nodeValue price = item.getElementsByTagName('price')[0].childNodes[0].nodeValue print(id, name, desc, price) 在上面的代码中,我们使用xml.dom.minidom模块解析XML数据,可以使用document对象获取根元素对象,然后使用getElementsByTagName()方法获取所有具有相同名称的元素,从而遍历XML数据并提取所需的数据。 总之,Python提供了许多工具和库,可帮助您轻松地解析JSONXML格式的数据。根据您的需求,可以选择使用jsonxml解析器来处理数据。 无论您选择哪个解析器,都可以使用Python来轻松地解析和处理数据。 ### 回答3: Python是一种流行的编程语言,适用于各种用途,包括数据解析。在Python中,JSONXML是两种最常用的数据交换格式。虽然这两种格式都用于将数据从一个应用程序传递到另一个应用程序,但它们具有不同的语法。 JSON(JavaScript Object Notation)是一种轻量级数据格式,易于阅读和编写,在Web开发中尤其受欢迎。它使用键值对来表示数据,值可以是数字、字符串、布尔值、列表、对象或null。在Python中,可以使用json模块来解析JSON数据。json模块提供了许多函数来读取和写入JSON数据,包括loads()和dumps()函数。loads()函数允许将JSON字符串转换为Python对象,而dumps()函数允许将Python对象转换为JSON字符串。 XML(扩展标记语言)是一种用于传输和存储数据的标记语言,在Web服务、B2B通信和数据库管理等领域中广泛使用。与JSON不同,XML使用标签来表示数据。标签包含元素的名称和值,通常嵌套在其他元素中。在Python中,可以使用xml.etree.ElementTree模块来解析XML数据。xml.etree.ElementTree模块提供了ElementTree类,允许创建XML树,还有一些有用的函数,例如find()、iter()和parse(),用于搜索和解析XML树。 无论您使用JSON还是XMLPython都提供了功能强大的工具来解析和处理数据。选择哪种格式取决于您的应用程序的需求和数据的性质。如果数据是简单的键值对,JSON可能是一个更好的选择,而如果数据是复杂的、嵌套式结构,或者需要包含元数据,XML可能更适合。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值