zoukankan      html  css  js  c++  java
  • python---Json

    概念

          序列化(Serialization):将对象的状态信息转换为可以存储或可以通过网络传输的过程,传输的格式可以是JSON,XML等。反序列化就是从存储区域(JSON,XML)读取反序列化对象的状态,重新创建该对象。

      JSON(Java Script Object Notation):一种轻量级数据交互格式,相对于XML而言更简单,也易于阅读和编写,机器也方便解析和生成,Json是JavaScript中的一个子集。

      python2.6版本开始加入了JSON模块,python的json模块序列化与反序列化的过程分别是encoding和decoding。

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

    具体应用

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

    1 # dumps功能
    2 # 将数据通过特殊的形式转换为所有程序语言都认识的字符串
    3 >>> import json
    4 >>> data = ['aa', 'bb', 'cc']
    5 >>> j_str = json.dumps(data)
    6 >>> j_str
    7 '["aa", "bb", "cc"]'
    1 # loads功能
    2 # 将json编码的字符串再转换为python的数据结构
    3 >>> j_str
    4 '["aa", "bb", "cc"]'
    5 >>> mes = json.loads(j_str)
    6 >>> mes
    7 ['aa', 'bb', 'cc']
    1 # dump功能
    2 # 将数据通过特殊的形式转换为所有程序语言都认识的字符串,并写入文件
    3 with open('D:/tmp.json', 'w') as f:
    4     json.dump(data, f)
    1 # load功能
    2 # 从数据文件中读取数据,并将json编码的字符串转换为python的数据结构
    3 with open('D:/tmp.json', 'r') as f:
    4     data = json.load(f)

    说明

    json编码支持的基本类型有:None, bool, int, float, string, list, tuple, dict.

      对于字典,json会假设key是字符串(字典中的任何非字符串key都会在编码时转换为字符串),要符合JSON规范,应该只对python列表和字典进行编码。此外,在WEB应用中,把最顶层对象定义为字典是一种标准做法。

      json编码的格式几乎和python语法一致,略有不同的是:True会被映射为true,False会被映射为false,None会被映射为null,元组()会被映射为列表[],因为其他语言没有元组的概念,只有数组,也就是列表。

    1 >>> import json
    2 >>> data = {'a':True, 'b':False, 'c':None, 'd':(1,2), 1:'abc'}
    3 >>> j_str = json.dumps(data)
    4 >>> j_str
    5 '{"a": true, "c": null, "d": [1, 2], "b": false, "1": "abc"}'
  • 相关阅读:
    Maximum Depth of Binary Tree
    Single Number
    Merge Two Sorted Lists
    Remove Nth Node From End of List
    Remove Element
    Remove Duplicates from Sorted List
    Add Two Numbers
    编译视频直播点播平台EasyDSS数据排序使用Go 语言 slice 类型排序的实现介绍
    RTMP协议视频直播点播平台EasyDSS在Linux系统中以服务启动报错can’t evaluate field RootPath in type*struct排查
    【解决方案】5G时代RTMP推流服务器/互联网直播点播平台EasyDSS实现360°全景摄像机VR直播
  • 原文地址:https://www.cnblogs.com/xiao1/p/5861560.html
Copyright © 2011-2022 走看看