• 简述json模块


    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写,他的数据结构与Python中的字典一样,键值对来表示数据间的关系,可以包含列表。

    在编写接口传递数据时,往往需要使用JSON对数据进行封装。python和json数据类型的转换,看作为编码与解码。

    主要讲一下他的四个方法:

    1json.dumps()将 Python 对象编码成 JSON对象,字符串str

    2json.loads()将已编码的 JSON 字符串解码为 Python 对象

    3json.dump()

    4json.load()

    一)json.dumps()和json.dump()

    1.都是序列化的方法,对Python对象编码

    json.dumps() 将 Python 对象序列化,编码成 JSON 字符串,存在一个对应的转换表

    json.dump()也是编码成json格式的字符串,但 dump必须传文件描述符,将序列化的str保存到文件中

    编码:json.dumps()

    Python JSON
    dict object
    list, tuple array
    str string
    int, float, int- & float-derived Enums number
    True true
    False false
    None null

     

    语法:json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None,

         separators=None, encoding="utf-8",default=None, sort_keys=False, **kw)

        # Serialize ``obj`` to a JSON formatted ``str``.
        # 序列号 “obj” 数据类型 转换为 JSON格式的字符串 

    语法:json.dump(obj, fp, skipkeys=False, ensure_ascii=True, check_circular=True,allow_nan=True, cls=None, indent=None, separators=None,default=None, sort_keys=False, **kw):
         obj, fp是默认的必选参数,其他可选参数
    可以理解为两个动作,一个动作是将”obj“转换为JSON格式的字符串,还有一个动作是将字符串写入到文件中,也就是说文件描述符fp是必须要的参数 """

    2.例句:
    >>>a={ "errcode":"0", "errmsg":"" , "success":"true"}
    >>>type(a)
    dict
    >>>aj=json.dumps(a)
    >>>aj
     '{"errcode": "0", "errmsg": "", "success": "true"}'
    把Python对象编码成json数据,字符串。
    >>>type(aj)
     str
    >>>with open('D://file.txt','w') as f:
    >>>b=json.dump(a,f)
    
    作用和下面形同,将数据编码并且存储到文件中。
    
    >>>with open('D://file.txt','w') as f:
    >>>f.write(a)
    
    
    

    (二)json.loads()和json.load()

    1. 反序列化,是对json对象的解码

    json.loads() 将 JSON 字符串解码成Python对象 ,存在一个对应转换的表

    json.load()  将 JSON 字符串解码成Python对象,并将解码后的Python对象保存到文件中

    解码:json.loads()

    JSONPython
    object dict
    array list
    string str
    number (int) int
    number (real) float
    true True
    false False
    null None

    语法:与上面的相同,转换相反,将json数据解码成Python对象

    2例句:

    >>>b=json.loads(aj)
    >>>b
    {'errcode': '0', 'errmsg': '', 'success': 'true'}
    >>>type(b)
    dict
    

     这是对json数据的解码,解码后为Python的字典类型。对于组成元素为字典的字符串,可以使用json.loads()方法转换为字典,例如:

    >>>c='{"a":1,"e":3}'
    >>>type(c)
    str
    >>>d=json.loads(c)
    >>>d
    {"a":1,"e":3}
    >>>type(d)
    dict
    

      注意:这里的字典的字符串c包含的字典的键必须为双引号,单引号无法转换。

    (三)第三方demjson模块,用来编码解码json对象

    demjson.encode(),python编码为json

    demjson.decode(),json解码为Python

    详细可以看文档demjson

     >>> import demjson
    
        >>> demjson.encode( ['one',42,True,None] )    # From Python to JSON
        '["one",42,true,null]'
    
        >>> demjson.decode( '["one",42,true,null]' )  # From JSON to Python
        ['one', 42, True, None]
    

     贴几个参考的链接:

    python中json的使用 ,

    python读写json文件

    Python3中json的encode和decode

  • 相关阅读:
    java连接各种数据库
    java遗传算法
    java中‘==’和’equal‘的区别
    java.net.BindException: Address already in use: JVM_Bind错误,端口设置问题
    Flink学习笔记6 Flink原理-Task(任务)、Operator Chain(算子链)和Slot(资源)
    Flink学习笔记5 Flink原理-资源
    Flink学习笔记4 Flink原理-基础架构
    Flink学习笔记2 CentOS7.5搭建Flink1.6.1分布式集群
    Flink学习笔记1 Flink入门简介
    Dubbo学习笔记12:使用Dubbo中需要注意的一些事情
  • 原文地址:https://www.cnblogs.com/zz22--/p/9322241.html
Copyright © 2020-2023  润新知