• Python标准库-Json模块(转载)


    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,Python的Json模块有序列化与反序列化两个过程。即 encoding和 decoding。

    • encoding:把一个python对象编码转换成Json字符串。

    • decoding:把json格式字符串编码转换成python对象。

    什么是序列化、反序列化?

    我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flattening等等,都是一个意思。

    即把python中的对象变成可存储的json字符串。序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上。

    反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling。

    Json模块提供了四个功能:dumps、dump、loads、load

    JSON表示的对象就是标准的JavaScript语言的对象,JSON和Python内置的数据类型对应如下:

    json的4个方法

    json提供四个功能:dumps, dump, loads, load

    1、dumps和dump

    序列化过程

    将一个python对象编码转换成Json字符串,可以存储可以网络远程传输

    dumps只完成了序列化为str,将数据通过特殊的形式转换为所有程序语言都认识的字符串

    dump必须传文件描述符,将序列化的str保存到文件中,将数据通过特殊的形式转换为所有程序语言都认识的字符串,并写入文件

    import json
    
    dic = {"k1":"v1"}
    str1 ="HelloPython"
    
    data1 = json.dumps(dic)
    data2 = json.dumps(str1)
    
    print (data1),type(data1)
    print (data2), type(data2)

    with open("test.json","w+") as f:
      json.dump(dic,f)

    输出结果:

    {"k1":"v1"}  <class 'str'>
    "HelloPython"   <class 'str'>


    生成一个test.json的文件,内容:
    {"k1":"v1"}

    2、loads 和 load

    ​ loads 只完成了反序列化,将json编码的字符串再转换为python的数据结构

    ​ load 只接收文件描述符,完成了读取文件和反序列化,数据文件中读取数据,并将json编码的字符串转换为python的数据结构

    1 import json
    2 
    3 
    4 with open("test.json") as f:
    5       data = json.load(f)
    6       #data = json.loads(f.read())  
    7 
    8 print (data)
    9 print (type(data))

    输出结果:

    {"k1":"v1"}  <class 'dict'>

     

     

  • 相关阅读:
    PLSQL导入导出oracle表 表空间
    IDL(Interactive Data Language——交互式数据语言)
    easyui更改messager的OkCancel按钮为(中文)确定取消
    java 中判断字符串相等
    hql实现对表的某几个(部分)字段查询
    MyEclipse 断点打不上 提示 absent line number information
    cocos2dx-3.x 导出自定义类到 lua 过程
    cocos2d-x中DrawNode常见的图像绘制函数
    cocos2d环境及创建一个自己的项目
    cocos2d基本类介绍 director/scene/layer/sprite
  • 原文地址:https://www.cnblogs.com/yu2000/p/13884714.html
Copyright © 2020-2023  润新知