python把字符串转为数字eval_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 "", line 1, in

File "", line 1, in

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值