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)转化为字典,获取参数信息

  • 相关阅读:
    eclipse实现热部署和热启动
    java.sql.SQLException: Incorrect string value: 'xF0x9Fx98x87<b
    Springboot 热部署中存在冲突的问题
    在执行save操作时候出现的诡异!
    富文本编辑器选择使用
    Springboot 1.5.x版本上读取自定义配置文件问题
    Springboot中静态资源和拦截器处理(踩了坑)
    表单验证——jquery validate使用说明【另一个教程】
    表单验证——jquery validate使用说明
    注册页面
  • 原文地址:https://www.cnblogs.com/testerlina/p/12819612.html
Copyright © 2011-2022 走看看