zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    C#中IDisposable学习
    C# volatile与lock
    TFS源代码管理
    C#如何获取真实IP地址
    c# 协变和逆变
    基本数据类型
    用户交互
    变量.常量
    输出语句,注释,
    基础知识随笔
  • 原文地址:https://www.cnblogs.com/xyao1/p/11836262.html
Copyright © 2011-2022 走看看