python將字符串轉換成對應的python數據類型--eval和json.loads(),json.dumps()


eval()和json.loads() 都可以將字符串轉換成對應的python數據類型,舉個字典的例子,同樣適合其他數據類型元組、列表、集合。

復制代碼
In [3]: ss = '{"a":1,"b":2}'

In [4]: type(eval(ss))
Out[4]: dict

In [7]: type(json.loads(ss))
Out[7]: dict
復制代碼

json一種輕量級數據交換格式,可以將json對象當作比較特殊的字符串,eval與json.loads都可以將大部分的JSON串轉成python對象,但也有區別:

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

json.loads與eval都能將s轉成python中的對象,json.loads將json中的字符串轉成unicode(types.UnicodeType),eval轉成了str(types.StringType)。
對於普通的數據類型,json.loads和eval都能用,但:

>>> x="[null,true,false,1]"
>>> json.loads(x)
[None, True, False, 1]
>>> eval(x)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1, in <module>
NameError: name 'null' is not defined

在遇到特殊類型的時候,eval就不管用了。

在python中使用json.loads() (用於將json對象轉換成python對應的數據類型)和json.dumps()用於將python數據類型轉換成json對象,下面舉個例子

復制代碼
In [10]: ss
Out[10]: '{"a":1,"b":2}'

In [11]: a = json.loads(ss)

In [12]: type(a)
Out[12]: dict

In [13]: x = json.dumps(a)

In [14]: type(x)
Out[14]: str
復制代碼

原文鏈接:https://blog.csdn.net/djskl/article/details/44783777


免責聲明!

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



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