XML、JSON与YAML简介

信息标记的三种形式

信息的标记

信息在传递的过程中都需要加以标记,可通过标签的方式,比如HTML,也可以通过键值对的方式name:kang,kang这个信息被标记为name,一组带有标记的信息存储起来就成了文档。
信息标记后有很多好处:

  • 形成信息组织结构,增加信息维度
  • 标记的结构形成了另一组信息
  • 便于通信、存储和显示
  • 可读性增强,利于程序理解和运用

比如,HTML是超文本信息集(文本,声音,图像,视频),是WWW的信息组织方式。HTML以标签的方式标记信息。


信息标记的种类

信息标记的形式有以下三种,XML,JSON,YAML。

  • XML(eXtensible Markup Language)扩展标记语言
利用标签进行标记语言,标签内有属性
this is a picture
空元素可简化表示未

注释表示为


一个XML文档内容如下:




    George
    John
    Reminder
    Don't forget the meeting!

  • JSON(JavaScript Object Notation) Javascript对象表示
"name":"kang"                       #通过键值对标记语言
"age" :21
"name":["kang","guo"]               #一个键可以对应多个值,用列表组织
"name":{"first":"w","last":"kang"}  #使用{}进行嵌套

JSON对象的好处是可以直接作为JavaScript对象进行使用,需要注意的是,JSON文件是不允许加注释的,否则会解析错误。一个JSON文件内容如下:

{
"employees": [
        { "firstName":"Bill" , "lastName":"Gates" },
        { "firstName":"George" , "lastName":"Bush" },
        { "firstName":"Thomas" , "lastName":"Carter" }
    ]
}
  • YAML(YAML Ain't Markup Language)
name:kang               #无类型键值对
name:                   #表示多个值
    -kang   
    -guo        
name:
    first:w
    last :kang          #使用缩进表示嵌套
    
text:|                  #表示整块数据                                     
hello world, this YAML,YAML Ain't Markup Lauguage

一个YAML文件内容如下:

#this is a ymal file
invoice: 34843
date   : 2001-01-23
bill-to: &id001
    given  : Chris
    family : Dumars
    address:
        lines: |
            458 Walkman Dr.
            Suite #292
        city    : Royal Oak
        state   : MI
        postal  : 48046
ship-to: *id001
product:
    - sku         : BL394D
      quantity    : 4
      description : Basketball
      price       : 450.00
    - sku         : BL4438H
      quantity    : 1
      description : Super Hoop
      price       : 2392.00
tax  : 251.42
total: 4443.52
comments:
    Late afternoon is best.
    Backup contact is Nancy
    Billsmer @ 338-4338.

三种标记形式的对比

XML JSON YMAL
最早的通用信息标记语言,可扩展性好,但繁琐 信息有类型,适合程序处理,较简洁 信息无类型,文本信息比例最高,可读性好
Internet上信息交互与传递 移动应用云端和节点的信息通信,不能加注释 各类系统的配置文件

以上三种文件的信息提取都需要解析器,比如通过bs4库的标签树进行遍历,但速度较慢。也可以直接进行搜索,找到相关的信息。可借助正则表达式(re)来实现,bs4库和re库结合使用。

你可能感兴趣的:(XML、JSON与YAML简介)