如何將Python字典列印成JSON格式?


可以使用Python的json模組輕鬆地將Python字典顯示為JSON格式。json模組是一個JSON編碼器/解碼器。JSON是JavaScript物件表示法,是一種輕量級的基於文字的開放標準,旨在進行人機可讀的資料交換。JSON格式由Douglas Crockford指定。它已從JavaScript指令碼語言擴充套件而來。

可以將字典視為一組鍵值對,要求鍵是唯一的(在一個字典內)。字典中的每個鍵與其值之間用冒號(:)分隔,專案之間用逗號分隔,整個內容用花括號括起來。

讓我們首先建立一個Python字典並獲取所有值。在這裡,我們在字典中包含了4個鍵值對並顯示它們。“產品”、“型號”、“單位”和“可用”是字典的鍵。除“單位”鍵外,所有鍵都具有字串值:

示例

# Creating a Dictionary with 4 key-value pairs myprod = { "Product":"Mobile", "Model": "XUT", "Units": 120, "Available": "Yes" } # Displaying the Dictionary print(myprod) # Displaying individual values print("Product = ",myprod["Product"]) print("Model = ",myprod["Model"]) print("Units = ",myprod["Units"]) print("Available = ",myprod["Available"])

輸出

{'Product': 'Mobile', 'Model': 'XUT', 'Units': 120, 'Available': 'Yes'}
Product =  Mobile
Model =  XUT
Units =  120
Available =  Yes

上面,我們顯示了包含產品資訊的字典中的4個鍵值對。現在,我們將看到在Python中更新字典值的兩種方法。現在,我們將把字典設定為JSON格式。

使用dumps()方法將字典列印成JSON格式

json模組的dumps()函式用於返回Python字典物件的JSON字串表示形式。dumps()的引數是字典:

示例

import json # Creating a Dictionary with 4 key-value pairs myprod = { "Product":"Mobile", "Model": "XUT", "Units": 120, "Available": "Yes" } # Converting to JSON format myJSON = json.dumps(myprod) # Displaying the JSON format print("\nJSON format = ",myJSON);

輸出

JSON format = {"Product": "Mobile", "Model": "XUT", "Units": 120, "Available": "Yes"}

使用__str__(self)方法將字典列印成JSON物件

__str___(self)函式用於返回物件的字串表示形式。我們在這裡聲明瞭一個類並將其用於字串表示形式以將其轉換為json物件:

示例

import json # Creating a Dictionary myprod = { "Product":"Mobile", "Model": "XUT", "Units": 120, "Available": "Yes" } # Declared a class class myfunc(dict): def __str__(self): return json.dumps(self) myJSON = myfunc(myprod) print("\nJSON format = ",myJSON);

輸出

JSON format = {"Product": "Mobile", "Model": "XUT", "Units": 120, "Available": "Yes"}

將字典列印成JSON陣列

陣列可以轉換為JSON物件。我們將鍵和值設定在陣列中並使用dump()方法:

示例

import json # Creating a Dictionary myprod = { "Product":"Mobile", "Model": "XUT", "Units": 120, "Available": "Yes" } # Keys and Values of a Dictionary in an array arr = [ {'key' : k, 'value' : myprod[k]} for k in myprod] # Displaying the JSON print("\nJSON format = ",json.dumps(arr));

輸出

JSON format = [{"key": "Product", "value": "Mobile"}, {"key": "Model", "value": "XUT"}, {"key": "Units", "value": 120}, {"key": "Available", "value": "Yes"}]

更新於:2022年8月11日

7K+瀏覽量

啟動你的職業生涯

完成課程後獲得認證

開始學習
廣告
© . All rights reserved.