欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中的json內(nèi)置庫詳解

 更新時間:2023年08月23日 08:47:22   作者:史上最強踩坑王  
這篇文章主要介紹了Python中的json內(nèi)置庫詳解,在學(xué)習(xí)做自動化測試的過程中,python 里有一個內(nèi)置的 json 庫,必須要學(xué)習(xí)好,json 是用于存儲和交換數(shù)據(jù)的語法,是一種輕量級的數(shù)據(jù)交換式使用場景,需要的朋友可以參考下

一、json作用

json 是用于存儲和交換數(shù)據(jù)的語法,是一種輕量級的數(shù)據(jù)交換式使用場景,主要用于以下場景

  • 接口數(shù)據(jù)的傳輸
  • 序列化
  • 配置文件(不是很適合,因為不能寫注釋,代碼可讀性較差一點)

二、json組成的結(jié)構(gòu)

  • 鍵值對形式
  • 數(shù)組形式

- python 對象 與 json 數(shù)據(jù)類型對應(yīng),如下圖

三、json庫

  • 可以從字符串或文件中解析json
  • 該庫解析json后將其轉(zhuǎn)為python字典或者列表

- 常用的方法有以下,如下圖

- 將 python 對象轉(zhuǎn)化為 json 字符串的demo,使用 dumps 方法

import json
"""
將 python 對象轉(zhuǎn)為 json 字符串
"""
# 定義 python 字典格式的對象,在python中一切皆為對象
data ={
    'a':1,
    'b':['1', 2],
    'c':True,
    'd':False,
    'e':None
}
# 將 python 對象轉(zhuǎn)為 json 字符串
python_data = json.dumps(data)
# 打印變量 python_data
print(python_data)

 輸出的結(jié)果如下,雙引號、true、false 、null 這些都是 json 的數(shù)據(jù)格式

{"a": 1, "b": ["1", 2], "c": true, "d": false, "e": null}

- 將 json 字符串轉(zhuǎn)化為 python 對象,使用的是 loads 方法,代碼如下

"""
將 json字符串的格式轉(zhuǎn)化成 python 對象
"""
# 定義一個 json 字符串
json_data = '{"a": 1, "b": ["1", 2], "c": true, "d": false, "e": null}'
# 將 json 字符串轉(zhuǎn)化為 python 對象
python_data = json.loads(json_data)
# 打印變量 python_data
print(python_data)
# 打印變量的數(shù)據(jù)類型
print(type(python_data))

輸出的結(jié)果如下,輸出為 python 的字典數(shù)據(jù)格式,F(xiàn)alse、True、None 這些都是 python 的數(shù)據(jù)格式

{'a': 1, 'b': ['1', 2], 'c': True, 'd': False, 'e': None}
<class 'dict'>

- 將 python 對象轉(zhuǎn)化為 json 格式數(shù)據(jù)并寫入到 json 文件當(dāng)中,使用的是 dump 方法,代碼如下

"""
將 python 對象轉(zhuǎn)化為 json 格式并寫入到一個 json 文件當(dāng)中
"""
data ={
    'a':1,
    'b':['1', 2],
    'c':True,
    'd':False,
    'e':None
}
# 將 python 對象轉(zhuǎn)化為 json 格式并寫入到一個 json 文件當(dāng)中
with open('test.json',mode='w') as  f:
    json.dump(data,f)

生成的json文件如下圖,是一個標準的 json 文件

- 將 json 文件讀取出來,并轉(zhuǎn)換為 python 對象,使用的是 load 方法,代碼如下

# 讀取 test.json 文件并賦值給變量 data
with open('test.json',mode='r') as  f:
    data = json.load(f)
    # 打印變量 data 
    print(data)
    # 打印 data 數(shù)據(jù)類型
    print(type(data))

輸出的結(jié)果如下圖,已經(jīng)成功轉(zhuǎn)換為 python  的字典數(shù)據(jù)格式了

由上面我們可以總結(jié):

方法(dumps 、loads)和 方法(dump、load)之間區(qū)別,除了字面上一個加 s 一個沒有加以外,我們需要寫入到文件的時候就使用不加 s 的方法,例如:dump、load,如果只是想將 python 的數(shù)據(jù)格式 和 json 字符串之間進行數(shù)據(jù)轉(zhuǎn)換,我們就需要使用加 s 的方法,例如:dumps、loads

四、dumps 常用參數(shù)

  • indent:根據(jù)數(shù)據(jù)格式縮進顯示,默認為None,沒有縮進
  • ensure_ascii:對中文使用ASCII編碼,默認為True,如果設(shè)置為True的話,如果想要在 json 格式中展示為中文的話,最好將這個設(shè)置為 False

代碼如下

"""
使用 json 里面的 dumps 方法,并添加 ensure_ascii,indent 這兩個參數(shù)
"""
# 定義一個 python 對象
data ={
    'a':1,
    'b':'從此以后一別兩寬',
    'c':True,
    'd':False,
    'e':None
}
# 將 python 對象轉(zhuǎn)化為 json 字符串
json_data = json.dumps(data,ensure_ascii=False,indent=4)
# 打印變量 json_data
print(json_data)

輸出的結(jié)果如下,能夠?qū)⒅形某晒φ故境鰜?,并進行了縮進,更加美觀

 如果將ensure_ascii 參數(shù)設(shè)定為 True ,結(jié)果如下:并不能成功展示中文

當(dāng)然除了上面常用參數(shù)以外,還有很多,各位小伙伴可以下來自己練習(xí)

到此這篇關(guān)于Python中的json內(nèi)置庫詳解的文章就介紹到這了,更多相關(guān)Python的json庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論