python中json、字典的區(qū)別以及相互轉(zhuǎn)換方法
前言
json,是一種輕量級的數(shù)據(jù)交換格式,由JavaScript語言創(chuàng)建,廣泛應(yīng)用于網(wǎng)頁數(shù)據(jù)交互,常見于爬蟲和數(shù)據(jù)分析領(lǐng)域。
json格式簡潔、結(jié)構(gòu)清晰,存儲格式為:鍵值對(key:value)
在python中,字典(dict)與json非常相似,都是鍵值對(key:value)形式。
一、 json與字典的區(qū)別
json與字典的區(qū)別,如下表:
| json格式 | dict(字典,python) |
|---|---|
| 一種數(shù)據(jù)格式,純字符串。可以被解析成python的字典(dict)形式或其他形式。 | 一種數(shù)據(jù)結(jié)構(gòu) |
| key只能是字符串 | key可以是python中任意不可變數(shù)據(jù):字符串、數(shù)值、元組等 |
| key可以是有序、重復(fù)的 | key不能重復(fù) |
| 字符串只能使用雙引號 | 字符串可以用單引號、雙引號、三引號 |
| 任意key存在默認(rèn)值undefined | 任意key沒有默認(rèn)值 |
| json:true、false、null、string | dict:Ture、False、None、str |
| json中文是unicode編碼,如,“\u6211” |
二、json與字典相互轉(zhuǎn)換
首先,創(chuàng)建一個字典(a_dict),作為舉例。
a_dict = {'a': 1, "b": 'qw', '''c''': ['q', 'w'], 'd': '您好'}
print(type(a_dict))
print(a_dict)

(一)將字典轉(zhuǎn)化為json格式數(shù)據(jù)
json.dumps():將python數(shù)據(jù)類型轉(zhuǎn)換成json字符串,dict→json
語法:
json.dumps(obj,ensure_ascii=True,indent=None,encoding=“utf8”,sort_keys=False,separators=None…)
| 常用參數(shù) | 釋義 |
|---|---|
| ensure_ascii | 默認(rèn)為True,中文編碼為unicode;改成False,則可以輸出中文漢字。 |
| indent | 默認(rèn)為None,參數(shù)根據(jù)格式縮進(jìn)顯示,表示縮進(jìn)幾個空格,接收int類型數(shù)值。 |
| sort_keys | 默認(rèn)為False,不按字典的key排序;改成True,按照字典的key排序 |
| separators | 指定分隔符,默認(rèn)為None;包含dict每個元素間分隔符(逗號“,”),key與value之間的分隔符(冒號“:”),指定分隔符后,原來的分隔符則直接去掉 |
| encoding | 編碼,默認(rèn)utf-8 |
將字典a_dict,轉(zhuǎn)換為json格式數(shù)據(jù),代碼如下:
# 將字典a_dict轉(zhuǎn)換為json
import json
a_dict = {'a': 1, "b": 'qw', '''c''': ['q', 'w'], 'd': '您好'}
a_json = json.dumps(a_dict)
print(type(a_json))
print(a_json)

注:字典a_dict,轉(zhuǎn)換為json數(shù)據(jù)a_json后,有以下幾點變化:
(1)數(shù)據(jù)類型由字典dict變成str
(2)a_dict中的單引號、三單引號全部統(tǒng)一為雙引號
(3)中文“您好”轉(zhuǎn)換為unicode編碼“\u60a8\u597d”。
如果想要正常顯示中文,可以加入?yún)?shù):ensure_ascii=False,代碼變?yōu)椋?/p>
# 將字典a_dict轉(zhuǎn)換為json
import json
a_dict = {'a': 1, "b": 'qw', '''c''': ['q', 'w'], 'd': '您好'}
a_json = json.dumps(a_dict, ensure_ascii=False)
print(type(a_json))
print(a_json)

(4)如果數(shù)據(jù)很多,直接一排一排這樣顯示,很難看清結(jié)構(gòu)。加入?yún)?shù):indent=縮進(jìn)空格數(shù),可以美觀清晰的輸出,代碼如:
import json
a_dict = {'a': 1, "b": 'qw', '''c''': ['q', 'w'], 'd': '您好'}
a_json = json.dumps(a_dict, ensure_ascii=False, indent=2) # 縮進(jìn)2個空格
print(type(a_json))
print(a_json)
(二)將json格式數(shù)據(jù)轉(zhuǎn)換為字典
json.loads():將json字符串解析成python數(shù)據(jù)類型,json→dict
將a_json轉(zhuǎn)換為字典格式數(shù)據(jù),如下:
b_dict = json.loads(a_json) print(type(b_dict)) print(b_dict)

以上就是python中,json與字典數(shù)據(jù)格式之間的區(qū)別,及相互轉(zhuǎn)換方法,可供參考。
總結(jié)
到此這篇關(guān)于python中json、字典的區(qū)別以及相互轉(zhuǎn)換方法的文章就介紹到這了,更多相關(guān)python json和字典相互轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python?matplotlib中plt.plot()函數(shù)的顏色參數(shù)設(shè)置及可以直接運行的程序代碼
在數(shù)據(jù)可視化中matplotlib.pyplot模塊的plot函數(shù)是一個非常重要且常用的工具,用于繪制2D圖形,這篇文章主要給大家介紹了關(guān)于Python?matplotlib中plt.plot()函數(shù)的顏色參數(shù)設(shè)置及可以直接運行的程序代碼,需要的朋友可以參考下2024-03-03
python標(biāo)準(zhǔn)庫sys和OS的函數(shù)使用方法與實例詳解
這篇文章主要介紹了python標(biāo)準(zhǔn)庫sys和OS的函數(shù)使用方法與實例詳解,需要的朋友可以參考下2020-02-02
Python使用BeautifulSoup進(jìn)行頁面解析
在Python中,我們可以使用BeautifulSoup庫來解析網(wǎng)頁,BeautifulSoup提供了簡單而強大的API,使得解析網(wǎng)頁變得輕松而高效,下面小編就來為大家詳細(xì)講講BeautifulSoup解析網(wǎng)頁的具體操作吧2023-09-09
Tensorflow高性能數(shù)據(jù)優(yōu)化增強工具Pipeline使用詳解
這篇文章主要為大家介紹了Tensorflow高性能數(shù)據(jù)優(yōu)化增強工具Pipeline使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
Django 導(dǎo)出項目依賴庫到 requirements.txt過程解析
這篇文章主要介紹了Django 導(dǎo)出項目依賴庫到 requirements.txt過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-08-08

