前言
json,是一種輕量級的數(shù)據交換格式,由JavaScript語言創(chuàng)建,廣泛應用于網頁數(shù)據交互,常見于爬蟲和數(shù)據分析領域。
json格式簡潔、結構清晰,存儲格式為:鍵值對(key:value)
在python中,字典(dict)與json非常相似,都是鍵值對(key:value)形式。
一、 json與字典的區(qū)別
json與字典的區(qū)別,如下表:
json格式 | dict(字典,python) |
---|---|
一種數(shù)據格式,純字符串。可以被解析成python的字典(dict)形式或其他形式。 | 一種數(shù)據結構 |
key只能是字符串 | key可以是python中任意不可變數(shù)據:字符串、數(shù)值、元組等 |
key可以是有序、重復的 | key不能重復 |
字符串只能使用雙引號 | 字符串可以用單引號、雙引號、三引號 |
任意key存在默認值undefined | 任意key沒有默認值 |
json:true、false、null、string | dict:Ture、False、None、str |
json中文是unicode編碼,如,“\u6211” |
二、json與字典相互轉換
首先,創(chuàng)建一個字典(a_dict),作為舉例。
a_dict = {'a': 1, "b": 'qw', '''c''': ['q', 'w'], 'd': '您好'}
print(type(a_dict))
print(a_dict)
(一)將字典轉化為json格式數(shù)據
json.dumps():將python數(shù)據類型轉換成json字符串,dict→json
語法:
json.dumps(obj,ensure_ascii=True,indent=None,encoding=“utf8”,sort_keys=False,separators=None…)
常用參數(shù) | 釋義 |
---|---|
ensure_ascii | 默認為True,中文編碼為unicode;改成False,則可以輸出中文漢字。 |
indent | 默認為None,參數(shù)根據格式縮進顯示,表示縮進幾個空格,接收int類型數(shù)值。 |
sort_keys | 默認為False,不按字典的key排序;改成True,按照字典的key排序 |
separators | 指定分隔符,默認為None;包含dict每個元素間分隔符(逗號“,”),key與value之間的分隔符(冒號“:”),指定分隔符后,原來的分隔符則直接去掉 |
encoding | 編碼,默認utf-8 |
將字典a_dict,轉換為json格式數(shù)據,代碼如下:
# 將字典a_dict轉換為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,轉換為json數(shù)據a_json后,有以下幾點變化:
(1)數(shù)據類型由字典dict變成str
(2)a_dict中的單引號、三單引號全部統(tǒng)一為雙引號
(3)中文“您好”轉換為unicode編碼“\u60a8\u597d”。
如果想要正常顯示中文,可以加入參數(shù):ensure_ascii=False,代碼變?yōu)椋?/p>
# 將字典a_dict轉換為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ù)據很多,直接一排一排這樣顯示,很難看清結構。加入參數(shù):indent=縮進空格數(shù),可以美觀清晰的輸出,代碼如:
import json
a_dict = {'a': 1, "b": 'qw', '''c''': ['q', 'w'], 'd': '您好'}
a_json = json.dumps(a_dict, ensure_ascii=False, indent=2) # 縮進2個空格
print(type(a_json))
print(a_json)
(二)將json格式數(shù)據轉換為字典
json.loads():將json字符串解析成python數(shù)據類型,json→dict
將a_json轉換為字典格式數(shù)據,如下:
b_dict = json.loads(a_json)
print(type(b_dict))
print(b_dict)
以上就是python中,json與字典數(shù)據格式之間的區(qū)別,及相互轉換方法,可供參考。文章來源:http://www.zghlxwxcb.cn/news/detail-715140.html
-end-文章來源地址http://www.zghlxwxcb.cn/news/detail-715140.html
到了這里,關于python——json、字典的區(qū)別及相互轉換方法的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!