JSON簡介

JSON(Javascript Object Notation,即JavaScript對象表示法)是一種輕量級的數(shù)據(jù)交換格式。它獨立于語言和平臺,JSON解析器和JSON庫支持不同的編程語言。JSON具有自我描述性,很容易理解。目前大多數(shù)接口返回的數(shù)據(jù)格式為JSON,因此進行接口測試必須掌握JSON。

JSON語法

語法規(guī)則

  • 數(shù)據(jù)在鍵/值對中
  • 數(shù)據(jù)由逗號分隔
  • {花括號}保存對象
  • [方括號]保存數(shù)組

JSON鍵/值對

JSON數(shù)據(jù)的書寫格式是 key:value鍵值對。比如:

“Name”:“51zxw”

JSON值可以是:

  • 數(shù)字(整數(shù)或浮點數(shù))
  • 字符串(在雙引號中)
  • 邏輯值(true 或 false)
  • 數(shù)組(在方括號中)
  • 對象(在花括號中)
  • null

JSON數(shù)字

"status_code":200

JSON字符串

“Name”:“51zxw”

JSON邏輯值

“result”:true

JSON數(shù)組

“user”:[“51zxw”,“zxw2021”,“zxw666”]

JSON 對象

JSON對象在花括號中書寫:對象可以包含多個鍵/值對:

{“firstName”:“John”,“l(fā)astName”:“Doe”}

Tips:在接口測試過程中,一般都是返回JSON對象類型。

JSON數(shù)據(jù)嵌套

比如在數(shù)組中含有多個對象:

{

"employees": [

{ "firstName":"John" , "lastName":"Doe" },

{ "firstName":"Anna" , "lastName":"Smith" },

{ "firstName":"Peter" , "lastName":"Jones" }

]

}

在上面的例子中,對象 "employees" 是包含三個對象的數(shù)組。每個對象代表一條關(guān)于某人(有姓和名)的記錄。

JSON數(shù)據(jù)解析

Python3中可以使用json模塊來對JSON數(shù)據(jù)進行編解碼,它包含了兩個方法:

  • json.dumps():將python數(shù)據(jù)轉(zhuǎn)化為json數(shù)據(jù)
  • json.loads():將json數(shù)據(jù)類型轉(zhuǎn)為Python數(shù)據(jù)類型

JSON庫官方文檔 https://docs.python.org/3/library/json.html

json.dumps()

將python數(shù)據(jù)轉(zhuǎn)化為json數(shù)據(jù)

import json data={'id':1,'name':'52zxw','password':'666'} print(type(data)) json_str=json.dumps(data) print(type(json_str)) print(json_str)

輸出結(jié)果:

<class 'dict'=""></class>

<class 'str'=""></class>

{"id": 1, "name": "52zxw", "password": "666"}

json.loads()

將json數(shù)據(jù)類型轉(zhuǎn)為python數(shù)據(jù)類型

import json json_str='{"id":1,"name":"51zxw","password":"666"}' print(type(json_str)) data=json.loads(json_str) print(type(data)) print(data) print(data["id"])

輸出結(jié)果:

<class 'str'=""></class>

<class 'dict'=""></class>

{'id': 1, 'name': '51zxw', 'password': '666'}

1

JSON文件處理

有時我們可能需要將JSON數(shù)據(jù)寫入到文件,或者從Json數(shù)據(jù)文件讀取數(shù)據(jù):

寫入 JSON 數(shù)據(jù)到文件

with open('data.json','w') as f: json.dump(data,f)

讀取JSON數(shù)據(jù)文件

with open('data.json','r') as f: data=json.load(f) print(data)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容