一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Python處理json字符串為什么不建議使用eval()

 曲鳥 2022-01-10

一、前言

最近發(fā)現(xiàn)一些小伙伴使用eval來處理json,而且為了能夠?qū)son成功轉(zhuǎn)為字典而不報錯,還寫了如下的賦值操作 (因為json中空為null,假為false,真為true與Python的表達不一樣,如果不進行下面代碼的賦值,用eval轉(zhuǎn)換就會報錯):

null=None
false=False
true=True

其實Python的標準庫中有處理json的庫,就叫json,比如要把json字符串轉(zhuǎn)為字典的話只需要使用json.loads這個方法就可以了;另外,eval處理json的性能也是遠遠比不上json庫的。


【Python測試交流群:8140 78962】


二、Json.loads與eval 性能對比

現(xiàn)在我們創(chuàng)建一個長度為100萬的json字符串數(shù)據(jù):

test_data = json.dumps({str(i): i for i in range(1000000)})

然后分別通過eval,json.loads來處理,他們的時間對比:

1. eval

執(zhí)行時間為: 0:00:03.730528

2. json.loads

執(zhí)行時間為: 0:00:00.466475

執(zhí)行時間相差了8倍多!


另外在自己的項目中,剛好有需求涉及到100KB+的json字符串轉(zhuǎn)換,它們的耗時對比如下:
耗時統(tǒng)計


如果沒有并發(fā)執(zhí)行的情況下,使用json.loads或eval來轉(zhuǎn)換花費的時間差距不是能夠感知出來的,但涉及并發(fā)執(zhí)行那就會變得很明顯。所以快把你代碼中處理json的eval改為json.loads吧!


如果做請求使用的是requests庫的話,可以直接使用它的json()方法,例如:

res=requests.get(url='http:///api/t/url.php?url=quniao.blog.csdn.net')
res_dict=res.json()

查看源碼發(fā)現(xiàn)它也是調(diào)用python標準庫中的json.loads方法,只是這樣可以少寫一點代碼。





    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    大香蕉网国产在线观看av| 免费黄色一区二区三区| 综合久综合久综合久久| 99久久国产精品亚洲| 韩日黄片在线免费观看| 久久热在线视频免费观看| 亚洲美女国产精品久久| 日本熟妇五十一区二区三区| 日本欧美一区二区三区就| 黄片美女在线免费观看| 人妻人妻人人妻人人澡| 国产欧美日韩视频91| 国产精品福利精品福利| 我想看亚洲一级黄色录像| 出差被公高潮久久中文字幕| 日本亚洲欧美男人的天堂| 99视频精品免费视频播放| 好吊日在线观看免费视频| 国产福利一区二区久久| 美国女大兵激情豪放视频播放| 欧美国产日产综合精品| 午夜精品国产精品久久久| 国产在线小视频你懂的| 国产麻豆精品福利在线| 日韩欧美综合在线播放| 成年女人下边潮喷毛片免费| 人妻偷人精品一区二区三区不卡| 福利在线午夜绝顶三级| 91麻豆视频国产一区二区| 色婷婷视频国产一区视频| 熟妇人妻av中文字幕老熟妇| 国产美女网红精品演绎| 精品香蕉一区二区在线| 欧美黑人黄色一区二区| 日本一级特黄大片国产| 午夜直播免费福利平台| 精品亚洲av一区二区三区| 91欧美亚洲精品在线观看| 国产老熟女乱子人伦视频| 日韩中文字幕狠狠人妻| 国产精品一区二区三区日韩av|