本文首發(fā)于我的個人博客Suixin's Blog
原文: https://suixinblog.cn/2019/02/python-json.html 作者: Suixin
JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式,盡管JSON是JavaScript的一個子集,但它是獨立于語言的文本格式。
在Python中,我們使用json包來實現(xiàn)json文件的讀取和寫入。
讀取json文件
使用json.loads()或json.load()兩個函數(shù)來讀取json文件。
json.loads()
json.loads()用來解析包含JSON數(shù)據(jù)的字符串,解析后變量格式為字典。
用法:

image
json.load()
json.load()用來解析json文件,這也是和json.loads()唯一的區(qū)別。
解析json文件時,要么該文件只包含一行(只有一個字典),要么每個字典是列表的一個元素,如圖:

image
如果是后一種,則解析出的變量也為列表格式,每個元素是對應(yīng)的字典。
編碼為json格式
使用json.dumps()或json.dump()兩個函數(shù)來編碼json格式。
json.dumps()
json.dumps()將一個Python數(shù)據(jù)結(jié)構(gòu)(字典)編碼成json格式的字符串。
用法:

image
json.dump()
json.dump()將一個Python數(shù)據(jù)結(jié)構(gòu)(字典)編碼成json格式,并寫入到文件中。
用法:

image
jj.json文件為:
image
共有參數(shù)
-
ensure_ascii=True:如果有中文時,需改為False,即不轉(zhuǎn)義為ASCII碼; -
indent=None:縮進。默認為緊湊格式,0/負數(shù)或者""為只換行,正數(shù)代表縮進多少個空格,也可以使用"\t"等; -
sort_keys=False:是否按照鍵排序; -
separators=None:分隔符。默認為None(即(", ", ": ")),可以改為緊湊形式(",", ":")等。