技術(shù)頻道導(dǎo)航
HTML/CSS
.NET技術(shù)
IIS技術(shù)
PHP技術(shù)
Js/JQuery
Photoshop
Fireworks
服務(wù)器技術(shù)
操作系統(tǒng)
網(wǎng)站運(yùn)營(yíng)

贊助商

分類目錄

贊助商

最新文章

搜索

json.dumps()將Python字典對(duì)象轉(zhuǎn)換為JSON格式的字符串

作者:admin    時(shí)間:2022-1-12 9:49:50    瀏覽:

有很多場(chǎng)景需要在程序中使用序列化的JSON數(shù)據(jù),如果你在進(jìn)一步處理的應(yīng)用程序中需要此序列化JSON數(shù)據(jù),則可以將其轉(zhuǎn)換為本機(jī)Python對(duì)象,而不是將其寫入文件中。

 json.dumps()將Python字典對(duì)象轉(zhuǎn)換為JSON格式的字符串

例如,你收到一個(gè)發(fā)送開發(fā)者詳細(xì)信息的HTTP請(qǐng)求,你從數(shù)據(jù)庫(kù)表中獲取開發(fā)人員數(shù)據(jù)并將其存儲(chǔ)在Python字典或任何Python對(duì)象中,現(xiàn)在你需要將該數(shù)據(jù)發(fā)送回請(qǐng)求的應(yīng)用程序,因此你需要將Python字典對(duì)象轉(zhuǎn)換為JSON格式的字符串以作為JSON字符串中的響應(yīng),為此,你需要使用json.dumps()。

json.dumps()返回的JSON字符串表示Python的dict。現(xiàn)在讓我們看看這個(gè)例子。

import json

def SendJsonResponse(resultDict):
    print("Convert Python dictionary into JSON formatted String")
    developer_str = json.dumps(resultDict)
    print(developer_str)

# sample developer dict
developer_Dict = {
    "name": "admin",
    "salary": 9000,
    "skills": ["Python", "Machine Learning", "Web Development"],
    "email": "admin@webkaka.com"
}
SendJsonResponse(developer_Dict)

輸出

Writing JSON data into a Python String
{"name": "Jane Doe", "salary": 9000, "skills": ["Python", "Machine Learning", "Web Development"], "email": admin@webkaka.com}

json.dumps()的語(yǔ)法

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

用途:用于將Python對(duì)象寫入JSON字符串。

使用的參數(shù):

  • obj 是一個(gè)Python可序列化對(duì)象,你希望將其轉(zhuǎn)換為JSON格式。
  • 如果skipkeys為真(默認(rèn)值:假),則不屬于基本類型的字典鍵 (str, int, float, bool, None) 將被跳過而不是引發(fā)一個(gè) TypeError。例如,如果你的字典鍵之一是自定義 Python 對(duì)象,則在將字典轉(zhuǎn)換為 JSON 時(shí)將省略該鍵。
  • 如果ensure_ascii為 true(默認(rèn)值),則保證輸出所有傳入的非 ASCII 字符都已轉(zhuǎn)義。如果ensure_ascii為 false,這些字符將按原樣輸出。
  • allow_nan默認(rèn)情況下為 True,因此將使用它們的 JavaScript 等效項(xiàng)(NaN、Infinity、-Infinity)。如果為 False,則序列化超出范圍的浮點(diǎn)值(nan、inf、-inf)將是一個(gè) ValueError。
  • indent參數(shù)用于漂亮地打印 JSON 以使其更具可讀性。默認(rèn)值為(', ', ': '). 要獲得最緊湊的 JSON 表示,你應(yīng)該使用(',', ':') 消除空格。
  • 如果sort_keys為真(默認(rèn):假),則字典的輸出將按鍵排序。

編碼時(shí) JSON 和 Python 實(shí)體之間的映射

要將 Python 對(duì)象編碼為 JSON 等效 json 模塊,請(qǐng)使用以下轉(zhuǎn)換表,使用json.dump()json.dumps()的方法進(jìn)行編碼時(shí)的翻譯。

現(xiàn)在讓我們看看如何將所有 Python 基本類型(例如 dict、list、set、tuple、str、 數(shù)字)轉(zhuǎn)換為 JSON 格式的數(shù)據(jù)。請(qǐng)參考下表了解 JSON 和 Python 數(shù)據(jù)類型之間的映射關(guān)系。

Python JSON
dict object
list, tuple array
str string
int, float, int & float-derived Enums number
True true
False false
None null

現(xiàn)在讓我們看看這個(gè)例子。

import json

sampleDict = {
    "colorList": ["Red", "Green", "Blue"],
    "carTuple": ("BMW", "Audi", "range rover"),
    "sampleString": "pynative.com",
    "sampleInteger": 457,
    "sampleFloat": 225.48,
    "booleantrue": True,
    "booleanfalse": False,
    "nonevalue": None
}
print("Converting Python primitive types into JSON")
resultJSON = json.dumps(sampleDict)
print("Done converting Python primitive types into JSON")
print(resultJSON)

輸出

Converting Python primitive types into JSON
Done converting Python primitive types into JSON
{"colorList": ["Red", "Green", "Blue"], "carTuple": ["BMW", "Audi", "range rover"], "sampleString": "pynative.com", "sampleInteger": 457, "sampleFloat": 225.48, "booleantrue": true, "booleanfalse": false, "nonevalue": null}

您可能對(duì)以下文章也感興趣

標(biāo)簽: Python  
x
  • 站長(zhǎng)推薦
/* 左側(cè)顯示文章內(nèi)容目錄 */