python中json、字典的區(qū)別以及相互轉(zhuǎn)換方法
前言
json,是一種輕量級(jí)的數(shù)據(jù)交換格式,由JavaScript語言創(chuàng)建,廣泛應(yīng)用于網(wǎng)頁數(shù)據(jù)交互,常見于爬蟲和數(shù)據(jù)分析領(lǐng)域。
json格式簡(jiǎn)潔、結(jié)構(gòu)清晰,存儲(chǔ)格式為:鍵值對(duì)(key:value)
在python中,字典(dict)與json非常相似,都是鍵值對(duì)(key:value)形式。
一、 json與字典的區(qū)別
json與字典的區(qū)別,如下表:
json格式 | dict(字典,python) |
---|---|
一種數(shù)據(jù)格式,純字符串??梢员唤馕龀蓀ython的字典(dict)形式或其他形式。 | 一種數(shù)據(jù)結(jié)構(gòu) |
key只能是字符串 | key可以是python中任意不可變數(shù)據(jù):字符串、數(shù)值、元組等 |
key可以是有序、重復(fù)的 | key不能重復(fù) |
字符串只能使用雙引號(hào) | 字符串可以用單引號(hào)、雙引號(hào)、三引號(hào) |
任意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)建一個(gè)字典(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)幾個(gè)空格,接收int類型數(shù)值。 |
sort_keys | 默認(rèn)為False,不按字典的key排序;改成True,按照字典的key排序 |
separators | 指定分隔符,默認(rèn)為None;包含dict每個(gè)元素間分隔符(逗號(hào)“,”),key與value之間的分隔符(冒號(hào)“:”),指定分隔符后,原來的分隔符則直接去掉 |
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后,有以下幾點(diǎn)變化:
(1)數(shù)據(jù)類型由字典dict變成str
(2)a_dict中的單引號(hào)、三單引號(hào)全部統(tǒng)一為雙引號(hào)
(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個(gè)空格 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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在Pytorch中簡(jiǎn)單使用tensorboard
今天給大家?guī)淼氖顷P(guān)于Python的相關(guān)知識(shí),文章圍繞著Pytorch使用tensorboard展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06Python表格處理模塊xlrd在Anaconda中的安裝方法
本文介紹在Anaconda環(huán)境下,安裝Python讀取.xls格式表格文件的庫(kù)xlrd的方法,xlrd是一個(gè)用于讀取Excel文件的Python庫(kù),本文介紹了xlrd庫(kù)的一些主要特點(diǎn)和功能,感興趣的朋友一起看看吧2024-04-04python3實(shí)現(xiàn)UDP協(xié)議的服務(wù)器和客戶端
這篇文章主要為大家詳細(xì)介紹了python3實(shí)現(xiàn)UDP協(xié)議的服務(wù)器和客戶端,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06Python內(nèi)存管理與泄漏排查實(shí)戰(zhàn)分享
這篇文章主要介紹了Python內(nèi)存管理與泄漏排查實(shí)戰(zhàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03python實(shí)現(xiàn)將一維列表轉(zhuǎn)換為多維列表(numpy+reshape)
今天小編就為大家分享一篇python實(shí)現(xiàn)將一維列表轉(zhuǎn)換為多維列表(numpy+reshape),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-11-11python計(jì)算機(jī)視覺實(shí)現(xiàn)全景圖像拼接示例
這篇文章主要為大家介紹了python計(jì)算機(jī)視覺實(shí)現(xiàn)全景圖像拼接示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05