解析JSON
本页用到的JSON数据
JSON(点击展开)
{
"school": {
"students": [
{
"name": "小明",
"age": 12,
"sex": "male"
},
{
"name": "小红",
"age": 13,
"sex": "female"
},
{
"name": "小强",
"age": 14,
"sex": "male"
}
],
"school_name": "光明中学",
"manager": "大强",
"age": 100
}
}
JSON 与 XML 的区别
建议您先看完整个 XML
教程再来看 JSON
,因为方法都是通用的。
JSON
中的 键名
对应 XML
中的 标签名
。
JSON
中没有属性的概念,也没有注释、CDATA的概念,所以与这些相关的所有方法均不能使用,操作符也是。
可以使用的查询方法有:find_nodes_by_tag
、find_nodes_by_text
、find_nodes_with_sibling_ancestor
、
find_nodes_with_ancestor
、find_nodes_with_descendants
。
可以调用的保存方法有:save_as_xml
。(save_as_json
未经过测试,可用但可能不稳定)
其它的增删改方法也可以使用,但如果不是必须要用 Universal Parser 读写 JSON
的话,不建议使用,因为我还没有完成相关的测试。
可以使用的操作符有:|
、/
、&
。
快速解析代码示例
import UniversalParser as UP
manager = UP.parse_json(json_data, analysis_text=False)
# 获取所有学生的年龄
students_age = manager | 'students' | 'age'
print([_age & UP.SM.text for _age in students_age]) # [12, 13, 14]
# 获取学校的年龄
print(manager.document.school.age) # 100
# 遍历所有的学生
for stu in manager | 'students':
print(stu.name, stu.age, stu.sex)
''' output:
小明 12 male
小红 13 female
小强 14 male
'''
manager.save_as_xml() # 保存为 XML
JSON转XML
import UniversalParser as UP
'''json_data 是一个JSON字符串
'''
manager = UP.parse_json(json_data, analysis_text=False)
manager.save_as_xml() # JSON 保存为 XML