日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python变量持久化_Python 数据持久化:JSON

發(fā)布時(shí)間:2023/12/2 python 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python变量持久化_Python 数据持久化:JSON 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Python 數(shù)據(jù)持久化:JSON

編程派微信號(hào):codingpy

淡藍(lán)色字體可以直接點(diǎn)擊查看

上周更新的《Think Python 2e》第14章講述了幾種數(shù)據(jù)持久化的方式,包括dbm、pickle等,但是考慮到篇幅和讀者等因素,并沒(méi)有將各種方式都列全。

本文將介紹一個(gè)與pickle類似的輕量級(jí)數(shù)據(jù)持久化方式,即json。而且json格式也是在網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)囊环N常見(jiàn)格式,非常有了解和學(xué)習(xí)的必要。

JSON與Pickle的區(qū)別

Python官方文檔中是這么比較JSON與Pickle的:

JSON是文本形式的存儲(chǔ),Pickle則是二進(jìn)制形式(至少常用二進(jìn)制)

JSON是人可讀的,Pickle不可讀

JSON廣泛應(yīng)用于除Python外的其他領(lǐng)域,Pickle是Python獨(dú)有的

JSON只能dump一些python的內(nèi)置對(duì)象,Pickle可以存儲(chǔ)幾乎所有對(duì)象

JSON一般使用方式

Python中處理json的自帶庫(kù)就是json模塊,需要用到的方法大致就是以下4個(gè),其實(shí)它們的參數(shù)有很多這里暫且省略。

可以看到,結(jié)尾帶s就是在字符串層面上操作,如果不帶s就是在文件層級(jí)操作。obj指的是需要轉(zhuǎn)化的對(duì)象,可以是一個(gè)字典或者列表,fp是文件句柄,用open打開(kāi)。s則是一個(gè)字符串。

dumps返回的是一個(gè)字符串,load和loads則會(huì)返回python的對(duì)象。

以上是最簡(jiǎn)單的一些使用方式,這里還有一些實(shí)用的參數(shù)可以選擇。

ensure_ascii參數(shù),是在有中文的情況下,設(shè)置為False可以防止將其解碼而得到亂碼,在loads的時(shí)候可以指定encoding來(lái)保持編碼。

indent參數(shù)如果不指定的話,輸出的字符串就是緊湊的形式,indent指定為4就可以輸出縮進(jìn)為4的美化形式,在需要給人看的時(shí)候用這個(gè)不錯(cuò)。

JSON序列化datetime問(wèn)題

Python自己的json.dumps不能序列化datetime對(duì)象,如果需要dump這類對(duì)象時(shí)可以自己定義JSONEncoder。

這樣在dump時(shí)指定cls參數(shù)就可以完成序列化datetime的任務(wù)了,如果覺(jué)得麻煩的話,可以使用偏函數(shù)的方法自己封裝一下。

simplejson

Python中自帶的json庫(kù)是在2.6版本中才加入的。因此,如果你需要使用一個(gè)更早的Python版本并且處理json數(shù)據(jù),那么你可以安裝一個(gè)第三方庫(kù):simplejson。

simplejson模擬了自帶的json庫(kù),目前支持Python 2.5+和Python 3.3+。根據(jù)官方文檔的介紹,該庫(kù)在沒(méi)有安裝C擴(kuò)展的情況下,速度仍優(yōu)于自帶的json庫(kù)。這應(yīng)該也是為什么simplejson在PyPI的下載數(shù)超高的原因之一。

要使用simplejson,你只需要像下面這樣導(dǎo)入即可:

import?simplejson?as?json

其他的代碼不需要修改。

本文參考了http://brieflyx.me/2015/python-module/python-data-persistence/一文。

總結(jié)

以上是生活随笔為你收集整理的python变量持久化_Python 数据持久化:JSON的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。