日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python怎么使用json_Python JSON的简单使用

發布時間:2025/1/21 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python怎么使用json_Python JSON的简单使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 json簡介

1.1 json是什么?

JSON(JavaScript Object Notation)是一種輕量級的數據交換格式。

“在JSON出現之前,大家一直用XML來傳遞數據。因為XML是一種純文本格式,所以它適合在網絡上交換數據。XML本身不算復雜,但是,加上DTD、XSD、XPath、XSLT等一大堆復雜的規范以后,任何正常的軟件開發人員碰到XML都會感覺頭大了,最后大家發現,即使你努力鉆研幾個月,也未必搞得清楚XML的規范。

終于,在2002年的一天,道格拉斯·克羅克福特(Douglas Crockford)同學為了拯救深陷水深火熱同時又被某幾個巨型軟件企業長期愚弄的軟件工程師,發明了JSON這種超輕量級的數據交換格式。”

1.2 json特點

json格式適合閱讀,容易理解,對計算機來說處理起來也很方便。json文本格式與C家族語言(C,C++,C#,Java,JavaScript,Perl,Python以及許多其他語言)的傳統變量非常的相似,它的文本語言建立在以下兩種結構上:

l “名稱/值”對的無序集合(以下簡稱鍵值對),在其他編程語言中,這種“名稱/值”對可能稱為對象、記錄、結構、字典、哈希表、鍵表或者關聯數組。

l “值”的有序列表,對應其他語言中的數組,向量,鏈表或者序列。

上面這些基本的數據結構,幾乎所有現代語言都能支持其中一種或多種,因此json作為一種數據交換格式就理所當然了。

1.3 json格式

名稱(key/name):用雙引號包含的字符串。

值(value)可以是雙引號包含的字符串,真假值(true,false),空(null),對象或者數組,也就是說可以是嵌套結構。

對象(object)是無序鍵值對的集合:以左花括弧“{”開始,右花括弧“}”結束,每個對名稱(name)與值(value)之間使用“:”分隔,鍵值對之間使用逗號“,”分隔。

數組(array)是有序值的序列:array以左方括弧“[”開始,右方括弧“]”結束,值與值之間使用逗號“,”分隔。

字符串(string)是使用雙引號包含的數個(可以是0個)連續unicode字符,使用反斜杠“\”作為轉義字符,類似C語言和Java中的字符串。

整數(number)除了不支持8進制和16進制,其他特性與C語言和Java語言整數相同。

2 Python3 JSON使用

Python內置可以處理JSON數據的包:

1 import json

在Python中,JSON數據表示為一個字符串

1 json_data = '{"name": "Bob", "languages": ["Python", "Java"]}'

json數據還可以從文件中讀取,Python中的常用JSON方法如下:

函數

描述

json.dumps()

將Python對象編碼成JSON字符串

json.loads()

將已編碼的JSON字符串解碼為Python對象

2.1 在Python中解析JSON

使用Python JSON包中的json.loads()函數可以輕松解析JSON字符串和JSON文件為Python對象。

例1:在Python中將JSON解析為dict

1 importjson2

3 person = '{"name": "Bob", "languages": ["English", "Fench"]}'

4 person_dict =json.loads(person)5

6 #Output: {'name': 'Bob', 'languages': ['English', 'Fench']}

7 print( person_dict)8

9 #Output: ['English', 'French']

10 print(person_dict['languages'])

例2:在Python中讀取JSON文件并解析person是JSON字符串,person_dict是Python dict對象。

假設你的如下JSON數據存放在名字為“person.json”的文件中

1 {"name": "Bob",2 "languages": ["English", "Fench"]3 }

可以使用如下方式解析該文件中的JSON數據:

1 importjson2

3 with open('path_to_file/person.json') as f:4 data =json.load(f)5

6 #Output: {'name': 'Bob', 'languages': ['English', 'Fench']}

7 print(data)

代碼中使用open()函數打開文件,使用json.load()函數解析JSON數據,將解析得到的數據放在data變量。

JSON字符串在解析到Python對象時的默認數據對應見下表

JSON

Python

object

dict

array

list

string

unicode

number (int)

int, long

number (real)

float

true

True

false

False

null

None

2.2 將Python數據打包成json字符串

使用Python JSON包中的json.dumps()函數可以將Python數據打包成JSON字符串。

例3:將dict轉成JSON

1 importjson2

3 person_dict = {'name': 'Bob',4 'age': 12,5 'children': None6 }7

8 person_json =json.dumps(person_dict)9

10 #Output: {"name": "Bob", "age": 12, "children": null}

11 print(person_json)

例4:將JSON數據寫入文件

上面的程序中,打開一個文件名為“person.txt”的文件,打開模式為寫入“w”,如果文件不存在,就會自動新建一個。接著使用json.dump()函數將person_dict數據打包成JSON字符串,寫入到打開的文件中。

程序運行后會在該代碼所在目錄生成person.txt文件,文件內容應該如下;

1 {"name": "Bob", "languages": ["English", "Fench"], "married": true, "age": 32}

2.3 格式化輸出JSON數據

為了分析JSON數據,我們可能需要以閱讀友好的格式輸出JSON數據。通過向json.dumps()函數傳遞格式控制參數indent和sort_keys可以實現該功能。

例5:格式化打印json數據

1 importjson2

3 person_string = '{"name": "Bob", "languages": "English", "numbers": [2, 1.6, null]}'

4

5 #Getting dictionary

6 person_dict =json.loads(person_string)7

8 #Pretty Printing JSON string back

9 print(json.dumps(person_dict, indent = 4, sort_keys=True))

上述參數意思為:縮進4個空格,對鍵值對進行升序排序,運行后輸出結果如下:

1 {2 "languages": "English",3 "name": "Bob",4 "numbers": [5 2,6 1.6,7 null8 ]9 }

可以看到,輸出結果多了換行和縮進,看起來整潔多了。

Python對象在打包為JSON字符串過程中默認數據對應見下表

Python

JSON

dict

object

list, tuple

array

str

string

int, float, int- & float-derived Enums

number

True

true

False

false

None

null

3 json數據樣例

1 {2 "firstName": "John",3 "lastName": "Smith",4 "isAlive": true,5 "age": 27,6 "address": {7 "streetAddress": "21 2nd Street",8 "city": "New York",9 "state": "NY",10 "postalCode": "10021-3100"

11 },12

13 "phoneNumbers": [14 {15 "type": "home",16 "number": "212 555-1234"

17 },18 {19 "type": "office",20 "number": "646 555-4567"

21 },22 {23 "type": "mobile",24 "number": "123 456-7890"

25 }26 ],27 "children": [],28 "spouse": null29 }

4 參考鏈接

總結

以上是生活随笔為你收集整理的python怎么使用json_Python JSON的简单使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。