'JSON的四個函數'

JSON Python JavaScript ECMAScript 有夢愛幻想的女孩 2019-08-09
"

JSON,即JavaScript Object Notation,是一種輕量級的數據交換格式。它基於ECMAScript的一個子集。

json.dumps():將 Python對象轉換編碼成JSON字符串

dumps()函數語法如下:

json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw)

  • skipkeys:默認值是False,如果dict的keys內的數據不是python的基本類型,設置為False時,就會報TypeError的錯誤。此時設置成True,則會跳過這類key 。
  • ensure_ascii:為True的時候,所有非ASCII碼字符顯示為\\\\uXXXX序列,只需在dump時將ensure_ascii設置為False即可,此時存入json的中文即可正常顯示。
  • check_circular:如果為false,則將跳過容器類型的循環引用檢查,循環引用將導致溢出錯誤。
  • allow_nan:如果為為false,那麼嚴格按照JSON規範序列化超出範圍的浮點值將是一個valueerror,而不是使用JavaScript等效值。
  • indent:根據數據格式縮進顯示,讀起來更加清晰,indent的數值,代表縮進的位數。
  • separators:更改默認分隔符,美化輸出結果。
  • sort_keys:將數據根據keys的值進行排序。

實例:如下所示,將python對象轉為json格式

import json
data = {
"name": "Mark",
"sex": "man",
"age": 36
}

data_json = json.dumps(data)
print(data_json)

# {"name": "Mark", "sex": "man", "age": 36}

json.load():從文件中讀取json字符串

實例:如下所示,從test.json文件中讀取數據

import json
f = open('test.json', 'r', encoding='utf-8')
print(json.load(f))
# {'name': 'Mark', 'sex': 'man', 'age': 36}

json.loads():用於解碼 JSON 數據,返回 Python 字段的數據類型

loads()函數語法如下:

json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])

實例:如下所示,將JSON數據轉為Python對象

import json
data = '{"name":"Mark", "sex":"man", "age":36}'
result = json.loads(data)

print(result)
# {'name': 'Mark', 'sex': 'man', 'age': 36}

print(result["name"])
# Mark

json.dump():將json格式字符串寫到文件中

實例:如下所示,將content數據寫入test.json文件中

import json

content = '{"name":"Tom", "sex":"man", "age":36}'
f = open('test.json', 'w', encoding='utf-8')

json.dump(content, f)
  • test.json文件內容如下所示:
"{\\"name\\":\\"Tom\\", \\"sex\\":\\"man\\", \\"age\\":36}"

Python 編碼為 JSON 類型轉換對照表

"

JSON,即JavaScript Object Notation,是一種輕量級的數據交換格式。它基於ECMAScript的一個子集。

json.dumps():將 Python對象轉換編碼成JSON字符串

dumps()函數語法如下:

json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw)

  • skipkeys:默認值是False,如果dict的keys內的數據不是python的基本類型,設置為False時,就會報TypeError的錯誤。此時設置成True,則會跳過這類key 。
  • ensure_ascii:為True的時候,所有非ASCII碼字符顯示為\\\\uXXXX序列,只需在dump時將ensure_ascii設置為False即可,此時存入json的中文即可正常顯示。
  • check_circular:如果為false,則將跳過容器類型的循環引用檢查,循環引用將導致溢出錯誤。
  • allow_nan:如果為為false,那麼嚴格按照JSON規範序列化超出範圍的浮點值將是一個valueerror,而不是使用JavaScript等效值。
  • indent:根據數據格式縮進顯示,讀起來更加清晰,indent的數值,代表縮進的位數。
  • separators:更改默認分隔符,美化輸出結果。
  • sort_keys:將數據根據keys的值進行排序。

實例:如下所示,將python對象轉為json格式

import json
data = {
"name": "Mark",
"sex": "man",
"age": 36
}

data_json = json.dumps(data)
print(data_json)

# {"name": "Mark", "sex": "man", "age": 36}

json.load():從文件中讀取json字符串

實例:如下所示,從test.json文件中讀取數據

import json
f = open('test.json', 'r', encoding='utf-8')
print(json.load(f))
# {'name': 'Mark', 'sex': 'man', 'age': 36}

json.loads():用於解碼 JSON 數據,返回 Python 字段的數據類型

loads()函數語法如下:

json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])

實例:如下所示,將JSON數據轉為Python對象

import json
data = '{"name":"Mark", "sex":"man", "age":36}'
result = json.loads(data)

print(result)
# {'name': 'Mark', 'sex': 'man', 'age': 36}

print(result["name"])
# Mark

json.dump():將json格式字符串寫到文件中

實例:如下所示,將content數據寫入test.json文件中

import json

content = '{"name":"Tom", "sex":"man", "age":36}'
f = open('test.json', 'w', encoding='utf-8')

json.dump(content, f)
  • test.json文件內容如下所示:
"{\\"name\\":\\"Tom\\", \\"sex\\":\\"man\\", \\"age\\":36}"

Python 編碼為 JSON 類型轉換對照表

JSON的四個函數

"

相關推薦

推薦中...