溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python中JSON的使用方法

發(fā)布時(shí)間:2020-05-25 11:36:22 來源:億速云 閱讀:475 作者:Leah 欄目:編程語言

  今天小編就為大家?guī)硪黄猵ython中JSON的使用方法的文章。小編覺得挺實(shí)用的,為此分享給大家做個(gè)參考。一起跟隨小編過來看看吧。

  1. 概述

  JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式,它具有簡潔、清晰的層次結(jié)構(gòu),易于閱讀和編寫,還可以有效的提升網(wǎng)絡(luò)傳輸效率。Python 標(biāo)準(zhǔn)庫的 json 模塊可以用來處理 JSON 格式數(shù)據(jù)的基本操作。

  2. 使用

  json 模塊主要提供了 dump、dumps、load、loads 方法對 JSON 數(shù)據(jù)進(jìn)行編解碼。

  2.1 dumps

  json 模塊的 dumps 方法可以將 Python 對象轉(zhuǎn)為 JSON 格式字符串,以字典格式為例,看個(gè)示例:

  import json

  d = {'id':'001', 'name':'張三', 'age':'20'}

  j = json.dumps(d, ensure_ascii=False)

  print(j)

  執(zhí)行結(jié)果:

  {"id": "001", "name": "張三", "age": "20"}

  我們發(fā)現(xiàn)上面的輸出結(jié)果并不是格式化的 JSON,dumps 方法還可以對數(shù)據(jù)進(jìn)行格式化,如下所示:

  import json

  d = {'id':'001', 'name':'張三', 'age':'20'}

  j = json.dumps(d, ensure_ascii=False, sort_keys=True, indent=4, separators=(',', ': '))

  print(j)

  執(zhí)行結(jié)果:

  {

  "age": "20",

  "id": "001",

  "name": "張三"

  }

  當(dāng)然,除了字典類型外,其他一些 Python 類型也可轉(zhuǎn)成 JSON 格式的字符串,它們之間有對應(yīng)關(guān)系如下所示:

  Python  JSON

  dict  object

  list, tuple  array

  str  string

  iint, float, int 和 float 派生的枚舉  number

  True  true

  False  false

  None  null

  再來看一下如何將 JSON 數(shù)據(jù)寫入文件:

  import json

  d = {'id':'001', 'name':'張三', 'age':'20'}

  j = json.dumps(d, ensure_ascii=False, sort_keys=True, indent=4, separators=(',', ': '))

  with open('test.json', 'w', encoding='utf-8') as f:

  f.write(j)

  2.2 dump

  json 模塊的 dump 方法可以將 Python 對象序列化為 JSON 格式化流形式的文件類對象。

  如果我們需要將數(shù)據(jù)寫到文件里的時(shí)候,dump 方法會(huì)比 dumps 方法方便一點(diǎn),看一下示例:

  import json

  d = {'id':'001', 'name':'張三', 'age':'20'}

  with open('test.json', 'w', encoding='utf-8') as f:

  json.dump(d, f, indent=4, ensure_ascii=False)

  如果我們需要的數(shù)據(jù)格式為 JSON 格式字符串時(shí),比如:將數(shù)據(jù)存入數(shù)據(jù)庫,這時(shí)則需要用 dumps 方法。

  2.3 loads鄭州人流多少錢 http://mobile.sgyy029.com/

  json 模塊的 loads 方法可以將 JSON 格式數(shù)據(jù)轉(zhuǎn)為 Python 對象,看個(gè)示例:

  import json

  j = '{"id":"001", "name":"張三", "age":"20"}'

  d = json.loads(j)

  print(d)

  執(zhí)行結(jié)果:

  {'id': '001', 'name': '張三', 'age': '20'}

  兩者之間轉(zhuǎn)換的對應(yīng)關(guān)系如下所示:

  JSON  Python

  object  dict

  array  list

  string  str

  number (int)  int

  number (real)  float

  true  True

  false  False

  null  None

  我們再來讀取一下之前生成的 test.json 中數(shù)據(jù)并將其轉(zhuǎn)為 Python 對象,如下所示:

  import json

  with open('test.json', encoding='utf-8') as f:

  data = f.read()

  print(json.loads(data))

  執(zhí)行結(jié)果:

  {'id': '001', 'name': '張三', 'age': '20'}

  2.4 load

  json 模塊的 load 方法將文件類對象轉(zhuǎn)為 Python 對象,看個(gè)示例:

  import json

  with open('test.json', encoding='utf-8') as f:

  print(json.load(f))

  執(zhí)行結(jié)果:

  {'id': '001', 'name': '張三', 'age': '20'}

  我們可以看出 load 方法傳的參數(shù)是文件對象,而 loads 方法參數(shù)傳的是字符串。

  看完上述內(nèi)容,你們對JSON的使用方法大概了解了嗎?如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI