zoukankan      html  css  js  c++  java
  • Python标准库:JSON

    JSON(JavaScript Object Notation)是一种由道格拉斯·克罗克福特构想设计、轻量级的资料交换语言,以文字为基础,且易于让人阅读。尽管 JSON 是 Javascript 的一个子集,但 JSON 是独立于语言的文本格式,並且采用了类似于 C 语言家族的一些习惯。

     

    【JSON 建构于两种结构】

    • “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(objec t), 记录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
    • 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。

     

    Python 标准库中有 json 模块,主要是执行序列化和反序列化功能:

    • 序列化:encoding,把一个 Python 对象编码转化成 json 字符串
    • 反序列化:decoding,把 json 格式字符串解码转换为 Python 数据对象 

     

    编码encoding: dumps() 

    import json
    
    print(json.__all__)
    
    # 序列化encoding:dumps(),把一个 Python 对象编码转化成 json 字符串
    data = [{"name": "Tony", "lang": ("python", "english"), "age": 40}]
    print(data, type(data))
    data_json = json.dumps(data)
    print(data_json, type(data_json))
    # data和data_json的不同——lang的值从元组编程了列表,
    # 对象类型由 list -> str

    将 Python 对象转化为 json 类型,是按照下表所示对照关系转化的:

    Python JSON
    dict object
    list, tuple array      
    str, unicode string 
    int, long, float number 
    True true
    False false
    None null               

    解码decoding: loads() 

    import json
    
    print(json.__all__)
    
    # 序列化encoding:dumps(),把一个 Python 对象编码转化成 json 字符串
    data = [{"name": "Tony", "lang": ("python", "english"), "age": 40}]
    print(data, type(data))
    data_json = json.dumps(data)
    print(data_json, type(data_json))
    # data和data_json的不同——lang的值从元组编程了列表,
    # 对象类型由 list -> str
    
    # 反序列化decoding:loads(),把 json 格式字符串解码转换为 Python 数据对象
    new_data = json.loads(data_json)
    print(new_data, type(new_data))
    # 解码后对象类型还原成 list;lang的值还是元组,没有还原

    解码的数据类型对应关系:

    JSON Python        
    object dict
    array list
    string unicode
    number(int) int, long
    number(real) float 
    true True 
    false False
    null None

         

    从现在开始,种下梦想中的参天大树
  • 相关阅读:
    【leetcode】Reverse Nodes in k-Group (hard)☆
    JSP简单练习-包装类综合应用实例
    C++ 学习笔记3,struct长度測试,struct存储时的对齐方式
    rsh 无秘钥登陆配置
    【POJ 3122】 Pie (二分+贪心)
    Boss OpenCart 商城自适应主题模板 ABC-0012-01
    理解C语言中指针的声明以及复杂声明的语法
    JQuery编程demo练习
    Growth: 一个关于怎样成为优秀Web Developer 的 App
    改动select默认样式,兼容IE9
  • 原文地址:https://www.cnblogs.com/dc2019/p/13246221.html
Copyright © 2011-2022 走看看