python中eval()和json.loads的區別


一.最近在寫接口測試腳本時,發現當讀取Excel用例時,有時候要用eval,有時候又要用json.loads,不知道區別,只能換一下就可以用了,不知道其中的原理,特地百度了下。於是就記錄了下,以便后續查看。

1、json.loads與eval都能將s轉成python中的對象,json.loads將json中的字符串轉成unicode(types.UnicodeType),eval轉成了str(types.StringType)。

2、json不認單引號,json中的字符串需要用雙引號包起來

 對於第一點,我的理解是后者就變成了字符串類型,前者不太懂,希望看到我這篇博客的大佬解釋下

>>> import json  
>>> s = '{"one":1,"two":2}'  
>>> json.loads(s)  
{u'two': 2, u'one': 1}  
>>> eval(s)  
{'two': 2, 'one': 1}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM