Python JSON 教程

ckxllf發表於2019-08-22

  Python JSON 教程

  本文我們透過示例學習python中解析、讀取和寫入json。同時也涉及到轉換json至字典和格式化列印。

  1. json 介紹

  JSON (JavaScript Object Notation) 是很常用的表示資料結構規範,web應用中常作伺服器間傳輸和接收的資料格式。

  Python中JSON可以用字串表示,示例:

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

  也可以在檔案中儲存JSON物件。

  匯入json模組

  要處理JSON (字串或包含json物件的檔案), 需要使用Python 的 json 模組,因此使用前需要先匯入該模組:

  import json

  2. 解析json

  python使用json模組使得解析json字串或包含json物件的檔案非常容易。

  2.1 解析json至字典

  可以使用 json.loads() 方法解析json,其返回字典型別。

  import json

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

  person_dict = json.loads(person)

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

  print(person_dict)

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

  print(person_dict['languages'])

  這裡person是字串型別,而person_dict是字典型別。

  2.2 解析json檔案

  也可以使用json.load()方法讀json檔案。假設person.json檔案包含json物件:

  {"name": "Bob",

  "languages": ["English", "Fench"]

  }

  下面程式碼解析該檔案:

  import json

  with open('path_to_file/person.json') as f:

  data = json.load(f)

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

  print(data)

  這裡使用open函式讀取json檔案。然後使用json.load()方法解析檔案,並返回data字典型別。

  使用with開啟檔案,則無需手動關閉檔案。

  3. 生成json字串

  可以透過json.dumps()方法轉換字典型別為json字串。

  import json

  person_dict = {'name': 'Bob',

  'age': 12,

  'children': None

  }

  person_json = json.dumps(person_dict)

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

  print(person_json)

  下表顯示python物件和其對應json物件。

  Python  JSON Equivalent

  dict  object

  list, tuple  array

  str  string

  int, float, int  number

  True  true

  False  false

  None  null

  4. 寫json檔案

  使用json.dump()方法寫json至檔案。

  import json

  person_dict = {"name": "Bob",

  "languages": ["English", "Fench"],

  "married": True,

  "age": 32

  } 無錫看婦科的醫院

  with open('person.txt', 'w') as json_file:

  json.dump(person_dict, json_file)

  上面程式中以寫模式開啟person.txt檔案,如果檔案不存在會自動建立檔案。然後json.dump()方法轉換person_dict字典至json字串並儲存至person.txt檔案中。

  執行程式會建立person.txt檔案,檔案內容如下:

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

  5. 格式化列印json

  為了分析和除錯json資料,有時需要以可讀方式列印json,只需要給json.dumps()方法。請看示例:

  import json

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

  # Getting dictionary

  person_dict = json.loads(person_string)

  # Pretty Printing JSON string back

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

  執行程式輸出結果如下:

  {

  "languages": "English",

  "name": "Bob",

  "numbers": [

  2,

  1.6,

  null

  ]

  }

  上面程式我們使用4個空格作為縮排並對key進行排序。預設情況下indent為None,sort_keys為False。

  另外dump方法一般用於一般用於寫檔案裝置流,dumps方法生成字串。

  6. 總結

  本文介紹了python中如何處理json,包括解析、寫檔案及格式化。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69945560/viewspace-2654576/,如需轉載,請註明出處,否則將追究法律責任。

相關文章