zoukankan      html  css  js  c++  java
  • Python3之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"}'
  • 相关阅读:
    VysorPro助手
    Play 2D games on Pixel running Android Nougat (N7.1.2) with Daydream View VR headset
    Play 2D games on Nexus 6P running Android N7.1.1 with Daydream View VR headset
    Native SBS for Android
    ADB和Fastboot最新版的谷歌官方下载链接
    How do I install Daydream on my phone?
    Daydream Controller手柄数据的解析
    蓝牙BLE传输性能及延迟分析
    VR(虚拟现实)开发资源汇总
    Android(Java)控制GPIO的方法及耗时分析
  • 原文地址:https://www.cnblogs.com/wang-yc/p/5616187.html
Copyright © 2011-2022 走看看