亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

關于Python的json字符串與json模塊解讀

 更新時間:2023年07月03日 08:37:21   作者:灰勒塔德  
這篇文章主要介紹了關于Python的json字符串與json模塊解讀,JSON采用完全獨立于語言的文本格式,但是也使用了類似于C語言家族的習慣(包括C,?C++,?C#,?Java,?JavaScript,?Perl,?Python等),這些特性使JSON成為理想的數(shù)據(jù)交換語言,需要的朋友可以參考下

1.json簡介:

JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式。 易于人閱讀和編寫。同時也易于機器解析和生成。 它基于JavaScript Programming Language,Standard ECMA-262 3rd Edition - December 1999的一個子集。

JSON采用完全獨立于語言的文本格式,但是也使用了類似于C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 這些特性使JSON成為理想的數(shù)據(jù)交換語言。

JSON建構于兩種結構,一是“名稱/值”對的集合(Acollectionofname/valuepairs)。不同的語言中,它被理解為對象(object),紀錄(record),結構(struct),字典(dictionary),哈希表(hashtable),有鍵列表(keyedlist),或者關聯(lián)數(shù)組(associativearray)。

二是值的有序列表(Anorderedlistofvalues)。在大部分語言中,它被理解為數(shù)組(array)。

2.json對象

語法格式:

json對象必須在花括號里面,對象可以包括多個鍵值對,但是跟字典是不一樣的,json中的字符串必須用雙引號,而Python對象的字典可以單引號也可以雙引號。

示例:

#json字符串
#json字符串只要是字符串類型的都必須用雙引號
{"韓信":"刺客","李白":666,"李信":"A級刮痧師","宮本武藏":123}
#json數(shù)組
#外面必須要有花括號括起來
{
    "writer":[
        {"name":"泰戈爾","country":"India"},
        {"name":"魯迅","country":"China"},
        {"name":"奧斯特洛夫斯基","country":"Russia"}
    ]
}

json對象與Python對象對比

JSONPython
objectdict
arraylist
stringstr
number (integer)int
number (real)float
trueTrue
falseFalse
nullNone

這里我們可以看出,json字符串與Python的字典非常相似,但是也有不同(上面講了),所以一般情況下json字符串和Python對象之間的轉換是json字符串和字典直接的轉換

3.json模塊

json模塊只有4種方法:分別是dump、dumps、load、loads,下面我會一一介紹。

json模塊的作用:

1.把Python對象轉換為json字符串

2.把json字符串轉換為Python對象

導入模塊

import json

(1)json.dumps() 函數(shù)

格式:

json.dumps(data,indent,sort_key)

參數(shù)說明:data是表示Python中的數(shù)據(jù)對象,indent是表示格式化空格的數(shù)量,sort_key是表示是否進行由小到大排序(布爾變量),如果填入True就表示是,如果天False或者不填就表示否

作用:把Python對象轉換為json字符串

示例:

import json
di={'name':'Jack','age':19,'gander':'male'}
print(di,type(di))
a=json.dumps(di) #獲取json字符串對象
print(a,type(a))
#輸出結果:{'name': 'Jack', 'age': 19, 'gander': 'male'} <class 'dict'>
#         {"name": "Jack", "age": 19, "gander": "male"} <class 'str'>
import json
di={5:'Jack',2:'Petter',3:'John',1:'Tom',4:'Amy'}
print(di,type(di))
a=json.dumps(di,sort_keys=True) #獲取json字符串對象
print(a,type(a))
#輸出結果:{5: 'Jack', 2: 'Petter', 3: 'John', 1: 'Tom', 4: 'Amy'} <class 'dict'>
#         {"1": "Tom", "2": "Petter", "3": "John", "4": "Amy", "5": "Jack"} <class 'str'>

(2)json.dump() 函數(shù)

格式:

json.dump(data,fp,indent)

參數(shù)說明:data是表示Python對象或者json對象,fp是表示文件,indent是表示輸出格式化(空格的數(shù)量)

作用:這個函數(shù)是吧一個data數(shù)據(jù)轉換為json字符串,然后再寫入fp文件中(如果data是Python對象,那么就會轉換為json字符串;如果本身就是json字符串,那結果還是json字符串)

示例1:

import json
di={5:'Jack',2:'Petter',3:'John',1:'Tom',4:'Amy'}
with open('kk.json','w',encoding='utf8') as f:
    json.dump(di,f)
    #其實這種寫法等效于f.write(json.dumps(data))
#結果會生成一個json文件,其中就有寫入的數(shù)據(jù)

這里可以看出寫入的數(shù)據(jù)并不是很好看,沒有那種格式化效果

示例2:(設置indent格式化寫入)

import json
di={5:'Jack',2:'Petter',3:'John',1:'Tom',4:'Amy'}
with open('kk.json','w',encoding='utf8') as f:
    json.dump(di,f,indent=4)

這看上去就舒服多了,所以呢,我們寫入文件的時候可以適當設置格式化,增強文件的可讀性。

(3)json.loads() 函數(shù)

格式:

json.loads(jsondata)

參數(shù)說明:jsondata是表示json對象

作用:把json字符串轉換為Python對象(一般是字典)

示例1:

import json
jsonstr='{"name":"Jack","age":18,"gander":"male","alive":true}'
pythondict=json.loads(jsonstr)
print(pythondict,type(pythondict))
#輸出結果:{'name': 'Jack', 'age': 18, 'gander': 'male', 'alive': True} <class 'dict'>

示例2:

import json
jsonstr='["a","b","c",{"name":"jack","alive":true}]'
pythondict=json.loads(jsonstr)
print(pythondict,type(pythondict))
#輸出結果:['a', 'b', 'c', {'name': 'jack', 'alive': True}] <class 'list'>

(4)json.load() 函數(shù)

格式:

json.load(fp)

參數(shù)說明:fp是表示json文件

作用:從文件讀取數(shù)據(jù)然后轉換為Python對象(其實就跟json.dump反過來就是了),然后返回這個對象

示例:

json文件的內容

import json
with open('kk.json','r',encoding='utf8') as f:
    pythondata=json.load(f)
    #等效于 pythondata=f.read()
print(pythondata,type(pythondata))
#輸出結果:{'5': 'Jack', '2': 'Petter', '3': 'John', '1': 'Tom', '4': 'Amy'} <class 'dict'>

4.總結:

方法功能
ison.dump(obj, fp)將python數(shù)據(jù)類型轉換并保存到json格式的文件內.
json.dumps(obj)將python數(shù)據(jù)類型轉換為json格式的字符串。
json.load(fp)從ison格式的文件中讀取數(shù)據(jù)并轉換為python的類型
json.loads(s)將json格式的字符串轉換為python的類型

到此這篇關于關于Python的json字符串與json模塊解讀的文章就介紹到這了,更多相關Python的json模塊內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 詳解python字節(jié)碼

    詳解python字節(jié)碼

    本篇文章給大家總結了關于python字節(jié)碼的相關知識點以及知識點分析,對此有需要的朋友參考學習下。
    2018-02-02
  • ubuntu系統(tǒng)下多個python版本如何設置默認python和pip

    ubuntu系統(tǒng)下多個python版本如何設置默認python和pip

    pip是一個用來安裝Python軟件包的工具,下面這篇文章主要給大家介紹了關于ubuntu系統(tǒng)下多個python版本如何設置默認python和pip的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-12-12
  • Python 包含漢字的文件讀寫之每行末尾加上特定字符

    Python 包含漢字的文件讀寫之每行末尾加上特定字符

    這篇文章主要介紹了Python 包含漢字的文件讀寫之每行末尾加上特定字符的相關資料,需非常不錯,具有參考借鑒價值,要的朋友可以參考下
    2016-12-12
  • 你應該知道的python列表去重方法

    你應該知道的python列表去重方法

    初學者經(jīng)常會遇到如何移除list中重復元素的問題。 這個問題在其他語言中可能需要for循環(huán)什么的,而在python中不用這樣,非常簡單,下面來通過這篇文章主要介紹了關于python列表去重方法以及拓展,需要的朋友可以參考借鑒,一起來看看吧。
    2017-01-01
  • 關于python 讀取csv最快的Datatable的用法,你都學會了嗎

    關于python 讀取csv最快的Datatable的用法,你都學會了嗎

    大家都知道Datatable與眾不同就是快,還有一點大家需要注意使用Datatable庫需要python3.6及以上版本,接下來通過本文給大家介紹了python 讀取csv最快的Datatable的用法,需要的朋友可以參考下
    2021-10-10
  • Python標準庫使用OrderedDict類的實例講解

    Python標準庫使用OrderedDict類的實例講解

    今天小編就為大家分享一篇關于Python標準庫使用OrderedDict類的實例講解,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • python 中[0]*2與0*2的區(qū)別說明

    python 中[0]*2與0*2的區(qū)別說明

    這篇文章主要介紹了python 中[0]*2與0*2的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • 使用PYTHON解析Wireshark的PCAP文件方法

    使用PYTHON解析Wireshark的PCAP文件方法

    今天小編就為大家分享一篇使用PYTHON解析Wireshark的PCAP文件方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • python 并發(fā)編程 非阻塞IO模型原理解析

    python 并發(fā)編程 非阻塞IO模型原理解析

    這篇文章主要介紹了python 并發(fā)編程 非阻塞IO模型原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • NumPy中np.random.rand函數(shù)的實現(xiàn)

    NumPy中np.random.rand函數(shù)的實現(xiàn)

    np.random.rand是NumPy庫中的一個函數(shù),用于生成隨機數(shù),本文主要介紹了NumPy中np.random.rand函數(shù)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-07-07

最新評論