Python 中的json模組

2021-09-29 04:13:14 字數 2244 閱讀 9253

目錄

一:json模組原始碼中定義的函式

二:json.dumps()

三:json.loads()

四:json.dump()和 json.load()

json模組裡的dumps函式是對資料進行編碼,形成json格式的資料,我們看一下下面的例子:

import json

data_dict =

# 有序轉換json字串

json1 = json.dumps(data_dict, sort_keys=true)

# 預設無序

json2 = json.dumps(data_dict)

print(json1)

print(json2)

通過輸出的結果很容易看出,通過dumps方法使字典轉換成為了json格式,雖然它們非常相似。其中,在dumps裡的引數「sort_keys=true」,使得輸出json後對key和value進行0~9、a~z的順序排序,如果不填,則按照無序排列。有時候,通過排序可以方便地比較json中的資料,因此,適當的排序是很有必要的。此外,「indent」引數表示縮排的意思,它可以使得輸出的json看起來更加整齊好看,可讀性更強,例如:

import json

data_dict =

# 預設無序

json1 = json.dumps(data_dict, indent=4)

print(json1)

例如原始碼所示、dumps提供了眾多引數、可以參考原始碼或者官方文件進行探索。建議通過原始碼探索

列舉一下dumps()的部分可填引數:

skipkey:預設為false,當dict物件裡的資料不是python的基本資料型別;(str,unicode,int,long,float,bool,none)時,當skipkey為false,就會報錯,如果skipkey為true,則可以跳過這類key;

indent:如果填0或者不填,則按照一行進行列印,否則按照indent的數值顯示前面的空格(正整數形式);

separators:分隔符,預設為「(',',':')」,它表示key之間用「,」隔開,key和value之間用「:」隔開;

encoding:編碼格式,預設值是utf-8;

sort_keys:對key、value進行排序,預設值是false,即不排序;

ensure_ascii:預設為true,如果dict物件裡含有none-ascii的字元,則顯示\uxx的格式,如果為false,則能正常顯示出來;

和dumps相反,loads函式則是將json格式的資料解碼,轉換為python字典,我們看一下下面的例子:

import json

data_str = ''

# 預設無序

print(type(data_str))

print(data_str)

data_dict = json.loads(data_str)

print(type(data_dict))

print(data_dict)

有時候,輸出結果遇到中文的時候,會出現編碼格式不一樣的情況,顯示出為unicode的編碼格式,使得不易讀懂,解決辦法是新增引數「encoding」引數,即上面的改寫成這樣:d1 = json.loads(data1,encoding='utf-8')即可。

相對於上面所講的dumps和loads來說,dump和load函式的功能類似,只不過前者是用來處理字串型別的,而後者是用於處理檔案型別的,如下所示:

import json

data =

with open(' data.txt', '', encoding='utf-8') as f:

# f. write (json.dumps (data, indent=4)) #和上面的效果一樣

json.dump(data, f, indent=4)

with open(' data.txt', 'r') as f:

# d2 = json.loads (f. read())#和上面的效果一樣

d2 = json.load(f)

注:detect_encoding(b)函式正如檔名所說、為探測文字的編碼啊方式。

python中json模組的用法

json這個模組就是做序列化處理的,主要用到json模組的四種方法 1 dumps 2 loads 3 dump 4 load 先介紹dumps方法 通過jshon的dumps的模組可以把特定的物件序列化處理為字串 import json l1 1,2,3,454 d1 ret json.dumps...

python中json模組使用

通過python的json模組,可以將字串形式的json資料轉化為字典,也可以將python中的字典資料轉化為字串形式的json資料。json.load json.loads 兩個方法功能類似,可選引數也相同,最大的區別在於,json.load方法接受的輸入,即第乙個引數,是包含json資料的檔案物...

python的json模組教學

import json 建立數字列表 numbers 2,3,5,7,11,13 指定將數字列表儲存到其中的檔案的名稱 filename number.json with open filename,w as file object json.dump numbers,file object 第乙個...