【python&爬蟲】快速入門JSON和JSONPath

一.JSON基本介紹

JSON(JavaScript Object notation)是一種輕量級的數據交換格式,更加易於閱讀和編寫,同時也方便了機器進行解析和生成。JSON適用於數據交互場景,如網站前臺和後臺之間的數據交互。JSONPath是一種信息抽取類庫,用於從JSON文檔中抽取指定信息

1.語法規則

JSON是比XML更簡單的一種數據交換格式,它採用完全獨立於編程語言的文本格式來存儲和表示數據,其語法規則如下:

(1)使用鍵值對(key:value)表示對象屬性和值
(2)使用逗號 , 分隔多條數據
(3)使用花括號 {} 包含對象
(4)使用方括號 [] 表示數組

2.JSON的取值

數字 字符串 邏輯值 數組 對象

3.JSON與XML比較

JSON和XML都是文本格式語言,它們經常用於數據交換和網絡傳輸。JSON語法格式簡單,層次結構清晰,比XML更易於閱讀。並且它佔用的字符量少,在網絡數據傳輸時,能夠節約帶寬,提高傳輸效率

二.JSON模塊介紹

1.基本介紹

從Python2.6開始加入了json模塊,使用import json即可導入。json模塊提供了Python對象的序列化和反序列化功能
(1)序列化(encoding):將一個python對象編碼轉換爲JSON字符串的過程
(2)反序列化(decoding):將JSON字符串解碼轉換爲Python對象的過程

2.json模塊的基本應用

json模塊提供了4個方法:dumps() dump() loads() load()
(1)dumps()用於將python類型編碼爲JSON字符串
(2)loads()用於把JSON字符串解碼成python對象
(3)dump()將python類型序列化爲JSON對象後寫入文件
(4)load()讀取文件中JSON形式的字符串元素,轉換成python類型

3.JSON類型和Python類型對比

JSON Python
JSON Python
object dict
array list
string unicode
number(int) int,long
number(real) float
true True
false FALSE
null None

三.JSONPath基本介紹
JSONPath是一種信息抽取庫,是從JSON文檔中抽取指定信息的工具,提供了多種語言實現,包括JavaScript,Python,PHP和Java
安裝JSONPath

pip install jsonpath

三.JSONPath語法

1.JSONPath語法基本瞭解

JSON結構清晰,可讀性高,複雜度低,非常容易匹配。JSONPath的語法與Xpath類似

JSONPath 描述
$ 根節點
@ 現行節點,當前節點
.or[] 取子節點
不管什麼位置,選擇所有符合條件的節點
* 匹配所有元素
[] 迭代器標識,如數組下標
[,] 支持迭代器多選
?() 支持過濾操作
() 支持表達式計算

2.jsonpath入門案例

以下數據來自與肯德基官網,長沙市部分肯德基店信息

{
  "store": {
    "Table": [
      {
        "rownum": 1,
        "storeName": "銀盆路",
        "addressDetail": "湖南銀雙路奧克斯廣場一樓餐廳",
        "pro": "Wi-Fi,點唱機,禮品卡,生日餐會",
        "provinceName": "湖南省",
        "cityName": "長沙市"
      },
      {
        "rownum": 2,
        "storeName": "桐梓坡",
        "addressDetail": "湖南桐梓坡路星電光城一層",
        "provinceName": "湖南省",
        "cityName": "長沙市"
      },
      {
        "rownum": 3,
        "storeName": "國慶",
        "addressDetail": "湖南人民東路1號",
        "pro": "24小時,Wi-Fi,點唱機,禮品卡,生日餐會",
        "provinceName": "湖南省",
        "cityName": "郴州市"
      }
    ]
  }
}

1.導入相關包,讀取json文件

在這裏插入圖片描述
2.相關操作
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章