python詳解json模塊


  我們在做工作中經常會使用到json模塊,今天就簡單介紹下json模塊

 

什么是json

JSON ,全稱為JavaScript Object Notation, 也就是JavaScript 對象標記,它通過對象和數組的組合米表示數據,構造簡潔但是結構化程度非常高,是一種輕量級的數據交換格式。json模塊在python中可以作為數據解析json

 

對象和數組

在JavaScript 語言中,一切都是對象。任何支持的類型都可以通過JSON來表示,例如字符串、數字、對象、數組等,但是對象和數組是比較特殊且常用的兩種類型

對象:它在JavaScript中是使用花括號{ }包裹起來的內容,數據結構為{ keyl : valuel,key2:value2}的鍵值對結構。在面向對象的語言中,key為對象的屬性,value 為對應的值。鍵名可以使用整數和字符串來表示。值的類型可以是任意類型。

數組:數組在JavaScript中是方括號[]包裹起來的內容,數據結構為[ ”java ” ,” javascript ”,"vb " ]的索引結構。在JavaScript中, 數組是一種比較特殊的數據類型,它也可以像對象那樣使用鍵值對,但還是索引用得多。同樣,值的類型可以是任意類型。

 

JSON對象格式

會發現和我們的字典格式是不是特別的一樣

# 格式為{"name":"value"}
[{
"name":"AnJing","age":"26" }]

 

JSON簡單使用

loads()方法

 使用方法loads()將 json文字轉化成json對象

# coding:utf-8
import json
str = '''
    [{
    "name":"AnJing",
    "age":"26"
}]
'''
data = json.loads(str)
print(data)
print(type(data))
print(data[0]['name'])  # 通過下標進行選擇
print(data[0].get('name'))

代碼結果:
[{'name': 'AnJing', 'age': '26'}]
<class 'list'>
AnJing
AnJing

注意:在使用loads的時候json字符串必須要用雙引號表示,否則會報錯

(json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 3 column 5 (char 12)

dumps()方法

使用dumps()方法將json轉換成字符串

# coding:utf-8
import json
str = [{
    "name":"AnJing",
    "age":"26"
}]
print(type(str))
data = json.dumps(str)
print(type(data))
print(data)

代碼結果:
<class 'list'>
<class 'str'>
[{"name": "AnJing", "age": "26"}]

另外如果想要保存的文字好看點,我們可以增加一個參數indent,代表縮進字符個數,已經可以寫入中文的時候不會亂碼,加入ensure_ascii=False

# coding:utf-8
import json
str = [{
    "name":"安靜",
    "age":"26",
    "性別":""
}]
# indent 表示縮進
# ensure_ascii=False 表示寫入中文
with open('123.json','w',encoding='utf-8')as f:
    f.write(json.dumps(str,indent=2,ensure_ascii=False))


代碼結果:
[
  {
    "name": "安靜",
    "age": "26",
    "性別": ""
  }
]

load()方法

將文件內容轉換成json數據

# 導入json模塊
import json
str = [{
    "name":"AnJing",
    "age":"26"
}]
# 通過dumps寫入文件中
with open('123.json','w')as f:
    f.write(json.dumps(str))
# 通過load將數據轉換成json
data = json.load(open('123.json','r'))
print(data)

代碼結果:
[{'name': 'AnJing', 'age': '26'}]

dump()方法

將json數據寫入到文件中

# coding:utf-8
import json
str = [{
    "name":"AnJing",
    "age":"26"
}]
# 通過dump寫入到json中
json.dump(str,open('123.json','w'))
# 通過load查看是否寫入
data = json.load(open('123.json','r'))
print(data)


代碼結果:
[{'name': 'AnJing', 'age': '26'}]

 

 

簡單的寫了寫json模塊的使用方法,以及json的簡單介紹,歡迎繼續補充沒有涉及到的知識。

 

感覺寫的對您有幫助的,點個關注不迷路~~~~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM