亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python處理json字符串(使用json.loads而不是eval())

 更新時間:2021年09月22日 09:58:00   作者:曲鳥  
eval 跟json.loads 是不一樣的函數,是有實現不一樣功能的地方,但是在某些地方它們兩個函數的功能是一樣的,本文就詳細介紹一下

eval 跟json.loads 是不一樣的函數,是有實現不一樣功能的地方,但是在某些地方它們兩個函數的功能是一樣的,在這個時候如果對執(zhí)行效率有一定要求的話,建議不要用eval,改用json.loads會有驚喜哦。

一、eval

eval() 函數用來執(zhí)行一個字符串表達式,并返回表達式的值。

二、json.loads

json.loads 用于解碼 JSON 數據。該函數返回 Python 字段的數據類型。

json.loads與eval都能將json字符串轉成python中的對象,但在實際工作中發(fā)現,在處理json字符串時,json.loads的性能遠超eval

三、效率對比

下列代碼是通過json.loads和eval方式將103KB大小的json字符串轉python字典的耗時對比:

   old_data = redis_con.get('api-case-version:' + str(version_id))
            if old_data:
                l_start = datetime.datetime.now()
                load_dict = json.loads(old_data)
                l_end = datetime.datetime.now()
                print('json.loads', l_end - l_start)
                e_start = datetime.datetime.now()
                old_dict = eval(old_data)
                e_end = datetime.datetime.now()
                print('eval', e_end - e_start)

耗時對比

耗時相差了13倍多。
在平時的場景下很難遇到處理大JSON字符串的情況,所以使用loads或eval差別可以忽略不計。但在我目前的項目中,是需要取swagger上的所有接口做對比,JSON字符串的大小經常達到1M+,這時使用loads和eval就有了較為明顯的性能差異了。

但是使用json.loads有個地方需要注意一下,json.loads對列表沒什么要求,但是對字典的格式有一定的要求,key值要保持是雙引號的key,單引號的key或者int類型都會報錯。

報錯內容如下

json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

因此字典的話建議儲存格式就是要用json.dumps轉換成標準的json格式然后再儲存成字符串。

另外如果是其他序列化格式的,對json的速度不滿意的可以考慮用一下msgpack,使用方式也很簡單,但是也是對格式有一定的要求,有很多博主進行過測試,都是比json快幾倍以上。這里就不詳講了。

到此這篇關于python處理json字符串(使用json.loads而不是eval())的文章就介紹到這了,更多相關python處理json字符串內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 使用Puppeteer爬取微信文章的實現

    使用Puppeteer爬取微信文章的實現

    這篇文章主要介紹了使用Puppeteer爬取微信文章的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • 淺析pytest?鉤子函數?之初始鉤子和引導鉤子

    淺析pytest?鉤子函數?之初始鉤子和引導鉤子

    這篇文章主要介紹了pytest?鉤子函數?之初始鉤子和引導鉤子,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-09-09
  • Python使用fastAPI如何實現一個流式傳輸接口

    Python使用fastAPI如何實現一個流式傳輸接口

    這篇文章主要介紹了Python使用fastAPI如何實現一個流式傳輸接口問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Python3如何實現Win10桌面自動切換

    Python3如何實現Win10桌面自動切換

    這篇文章主要介紹了Python3如何實現Win10桌面自動切換,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • 解決keras加入lambda層時shape的問題

    解決keras加入lambda層時shape的問題

    這篇文章主要介紹了解決keras加入lambda層時shape的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • 對python xlrd讀取datetime類型數據的方法詳解

    對python xlrd讀取datetime類型數據的方法詳解

    今天小編就為大家分享一篇對python xlrd讀取datetime類型數據的方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • 利用python生成一個導出數據庫的bat腳本文件的方法

    利用python生成一個導出數據庫的bat腳本文件的方法

    下面小編就為大家?guī)硪黄胮ython生成一個導出數據庫的bat腳本文件的方法。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • 基于Python中numpy數組的合并實例講解

    基于Python中numpy數組的合并實例講解

    下面小編就為大家分享一篇基于Python中numpy數組的合并實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python圖像處理之Hough圓形檢測

    Python圖像處理之Hough圓形檢測

    霍夫變換是一種特征檢測(feature extraction),被廣泛應用在圖像分析,本文將利用Hough變換實現圓形檢測,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-07-07
  • Python實現繁體轉為簡體的方法示例

    Python實現繁體轉為簡體的方法示例

    這篇文章主要介紹了Python實現繁體轉為簡體的方法,涉及Python編碼轉換相關操作技巧,需要的朋友可以參考下
    2018-12-12

最新評論