zoukankan      html  css  js  c++  java
  • JSON类型解析

    JSON类型解析

    一、序列化和反序列化

    程序中的对象,如python中的字典、列表、函数、类等,都是存在内存中,不方便传递或存储,所以需要将内存中的对象转化为文本或者文件格式,来满足传输和持久化(存储)

    序列化:内存对象-->文本

    反序列化:文本-->内存对象

    JSON对象(Python字典)-->转为文本格式-->发送文本格式的请求

    ->服务器收到请求-将文本格式转化为对象,获取其中的参数,处理业务

    -->返回文本格式的响应-->客户端将文本格式转为对象格式,来获取响应的数据

    二、Python字典格式和json格式的区别

    Python字典格式和json格式的区别:

    1、字典中的引号支持单引号和双引号,json格式只支持双引号

    2、字典中的True/False首字母大写,json格式为true/false

    3、字典中的空值为None,json格式为null

    三、json格式的操作方法

    1、文本的序列化

    序列化(字典-->文本):json.dumps()

    反序列化(文本-->字典):json.loads()

    文本序列化例如:

    #coding=utf-8
    import json
    obj = {"name": "你好", "password": "123456", "male": True, "money": None}
    json_info=json.dumps(obj)
    print(json_info)
    json_info=json.dumps(obj,ensure_ascii=False) #ensure_ascii=False不确保ascii码,如果返回格式为utf-8,不转化为u...
    print(json_info)

    结果:

    {"money": null, "password": "123456", "male": true, "name": "u4f60u597d"}
    {"money": null, "password": "123456", "male": true, "name": "你好"}

    2、文件的序列化

    序列化(字典-->文件句柄):json.dump()

    反序列化(文件句柄-->字典):json.load()

    文件序列化:

    # coding=utf-8
    import json
    res_dict = {'name': '张三', 'password': '123456', "male": True, "money": None}
    f = open("demo1.json","w")
    json.dump(res_dict, f,ensure_ascii=False)

    结果demo1.json内容为:

    {"money": null, "password": "123456", "male": true, "name": "张三"}

    文件反序列化:

    # coding=utf-8
    import json
    f = open("demo2.json","r")
    f_dict = json.load(f) # 反序列化将文件句柄转化为字典
    print(f_dict ['name']) # 读取其中参数
    f.close()

    四、字典和json文本的使用

    在组装数据时,一般使用字典格式,发送请求时用json.dumps()将字典转化为文本发送请求,收到请求后使用json.loads(res.text)转化为字典,获取参数信息

  • 相关阅读:
    Linux就该这么学--Shell脚本基本应用
    Linux就该这么学--了解Shell脚本
    Linux就该这么学--命令集合11(配置系统相关信息)
    解決 centos -bash: vim: command not found
    Linux就该这么学--命令集合10(vim编辑器)
    Linux就该这么学--命令集合9(环境变量)
    html5 浏览器端数据库
    加密技术---仿射密码
    数组的运用、排序
    面试题参考
  • 原文地址:https://www.cnblogs.com/testerlina/p/12819612.html
Copyright © 2011-2022 走看看