最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中最好用的json庫orjson用法詳解

 更新時間:2022年06月06日 10:01:53   作者:代碼輸入中...  
orjson是一個用于python的快速、正確的json庫,它的基準是 json最快的python庫,具有全面的單元、集成和互操作性測試,下面這篇文章主要給大家介紹了關于Python中最好用的json庫orjson用法的相關資料,需要的朋友可以參考下

1 簡介

大家好,我們在日常使用 Python 的過程中,經常會使用 json 格式存儲一些數據,尤其是在 web 開發(fā)中。而 Python 原生的 json 庫性能差、功能少,只能堪堪應對簡單輕量的 json 數據存儲轉換需求。

而本文我要給大家介紹的第三方 json 庫 orjson ,在公開的各項基準性能測試中,以數倍至數十倍的性能優(yōu)勢碾壓 json 、 ujson 、 rapidjson 、 simplejson 等其他 Python 庫,且具有諸多額外功能,下面我們就來領略其常用方法吧~

2 orjson常用方法

orjson 支持 3.7 到 3.10 所有版本64位的 Python ,本文演示對應的 orjson 的版本為 3.7.0 ,直接使用 pip install -U orjson 即可完成安裝。下面我們來對 orjson 中的常用方法進行演示:

2.1 序列化

與原生 json 庫類似,我們可以使用 orjson.dumps() 將 Python 對象序列化為 JSON 數據,注意,略有不同的是, orjson 序列化的結果并不是 str 型而是 bytes 型,在下面的例子中,我們對包含一千萬個簡單字典元素的列表進行序列化, orjson 與 json 庫的耗時比較如下:

2.2 反序列化

將 JSON 數據轉換為 Python 對象的過程我們稱之為反序列化,使用 orjson.loads() 進行操作,可接受 bytes 、 str 型等常見類型,在前面例子的基礎上我們添加反序列化的例子:

2.3 豐富的option選項

在 orjson 的序列化操作中,可以通過參數 option 來配置諸多額外功能,常用的有:

  • OPT_INDENT_2

通過配置 option=orjson.OPT_INDENT_2 ,我們可以為序列化后的 JSON 結果添加2個空格的縮進美化效果,從而彌補其沒有參數 indent 的不足:

  • OPT_OMIT_MICROSECONDS

orjson.dumps() 可以直接將 Python 中 datetime 、 time 等標準庫中的日期時間對象轉換成相應的字符串,這是原生 json 庫做不到的,而通過配置 option=orjson.OPT_OMIT_MICROSECONDS ,可以將轉換結果后綴的毫秒部分省略掉:

  • OPT_NON_STR_KEYS

當需要序列化的對象存在非數值型鍵時, orjson 默認會拋出 TypeError 錯誤,這時需要配置 option=orjson.OPT_NON_STR_KEYS 來強制將這些鍵轉換為字符型:

OPT_SERIALIZE_NUMPY

orjson 的一大重要特性是其可以將包含 numpy 中數據結構對象的復雜對象,兼容性地轉換為 JSON 中的數組,配合 option=orjson.OPT_SERIALIZE_NUMPY 即可:

  • OPT_SERIALIZE_UUID

除了可以自動序列化 numpy 對象外, orjson 還支持對 UUID 對象進行轉換,在 orjson 3.0 之前的版本中,需要配合 option=orjson.OPT_SERIALIZE_UUID ,而本文演示的 3.X 版本則無需額外配置參數:

  • OPT_SORT_KEYS

通過配合參數 option=orjson.OPT_SORT_KEYS ,可以對序列化后的結果自動按照鍵進行排序:

  • 組合多種option

當你的序列化操作需要涉及多種 option 功能時,則可以使用 | 運算符來組合多個 option 參數即可:

2.4 針對dataclass、datetime添加自定義處理策略

當你需要序列化的對象中涉及到 dataclass 自定義數據結構時,可以配合 orjson.OPT_PASSTHROUGH_DATACLASS ,再通過對 default 參數傳入自定義處理函數,來實現更為自由的數據轉換邏輯,譬如下面簡單的例子中,我們可以利用此特性進行原始數據的脫敏操作:

類似的,針對 datetime 類型數據,我們同樣可以配合 OPT_PASSTHROUGH_DATETIME 和自定義 default 函數實現日期自定義格式化轉換:

總結

到此這篇關于Python中最好用的json庫orjson用法的文章就介紹到這了,更多相關Python中json庫orjson內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python xlwt模塊的使用解析

    python xlwt模塊的使用解析

    這篇文章主要介紹了python xlwt模塊的使用解析,幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下
    2021-04-04
  • Python如何通過地址獲取變量

    Python如何通過地址獲取變量

    這篇文章主要介紹了Python如何通過地址獲取變量,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Python中循環(huán)依賴問題及其解決方案

    Python中循環(huán)依賴問題及其解決方案

    在軟件開發(fā)中,循環(huán)依賴是一個常見的問題,尤其是在使用 Python 這樣的動態(tài)語言時,循環(huán)依賴指的是兩個或多個模塊或組件相互依賴,形成一個閉環(huán),本文將探討 Python 中循環(huán)依賴的問題,并提供一些解決方案,需要的朋友可以參考下
    2024-06-06
  • 4種方法python批量修改替換列表中元素

    4種方法python批量修改替換列表中元素

    這篇文章主要介紹了4種python批量替換列表中元素方法,需要的朋友可以參考下
    2022-04-04
  • Python json格式化打印實現過程解析

    Python json格式化打印實現過程解析

    這篇文章主要介紹了Python json格式化打印實現過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • Pandas實現一列數據分隔為兩列

    Pandas實現一列數據分隔為兩列

    這篇文章主要介紹了Pandas實現一列數據分隔為兩列,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • python爬蟲入門教程--HTML文本的解析庫BeautifulSoup(四)

    python爬蟲入門教程--HTML文本的解析庫BeautifulSoup(四)

    Beautiful Soup是python的一個庫,最主要的功能是從網頁抓取數據。下面這篇文章主要給大家介紹了python爬蟲之HTML文本的解析庫BeautifulSoup的相關資料,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2017-05-05
  • pandas使用get_dummies進行one-hot編碼的方法

    pandas使用get_dummies進行one-hot編碼的方法

    今天小編就為大家分享一篇pandas使用get_dummies進行one-hot編碼的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 詳解Python3網絡爬蟲(二):利用urllib.urlopen向有道翻譯發(fā)送數據獲得翻譯結果

    詳解Python3網絡爬蟲(二):利用urllib.urlopen向有道翻譯發(fā)送數據獲得翻譯結果

    這篇文章主要介紹了Python3網絡爬蟲(二):利用urllib.urlopen向有道翻譯發(fā)送數據獲得翻譯結果,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05
  • Python教程之成員和身份運算符的用法詳解

    Python教程之成員和身份運算符的用法詳解

    身份運算符是python用來判斷的兩個對象的存儲單元是否相同的一種運算符號。Python的成員運算符是“是否包含運算符”,主要應用在字符串或者集合中。本文將通過示例聊聊二者的使用,需要的可以參考一下
    2022-09-09

最新評論

绥宁县| 临泉县| 任丘市| 南江县| 宝丰县| 宿松县| 安泽县| 洪雅县| 新野县| 唐海县| 电白县| 井冈山市| 北碚区| 新泰市| 福清市| 温州市| 河北区| 吉水县| 邯郸县| 武穴市| 门头沟区| 潢川县| 云南省| 开鲁县| 万年县| 仁寿县| 长阳| 巧家县| 沁水县| 栾川县| 安康市| 包头市| 南昌市| 上虞市| 上思县| 贡山| 丰原市| 凯里市| 清新县| 汝南县| 绥阳县|