zoukankan      html  css  js  c++  java
  • python中json与dict之间转换

    Python之dict(或对象)与json之间的互相转化

    在Python语言中,json数据与dict字典以及对象之间的转化,是必不可少的操作。

    在Python中自带json库。通过import json导入。

    在json模块有2个方法,

    • loads():将json数据转化成dict数据
    • dumps():将dict数据转化成json数据
    • load():读取json文件数据,转成dict数据
    • dump():将dict数据转化成json数据后写入json文件

    下面是具体的示例:

    dict字典转json数据

    import json
    
    def dict_to_json():
        dict = {}
        dict['name'] = 'many'
        dict['age'] = 10
        dict['sex'] = 'male'
        print(dict)  # 输出:{'name': 'many', 'age': 10, 'sex': 'male'}
        j = json.dumps(dict)
        print(j)  # 输出:{"name": "many", "age": 10, "sex": "male"}
    
    
    if __name__ == '__main__':
        dict_to_json()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    对象转json数据

    import json
    
    def obj_to_json():
        stu = Student('007', '007', 28, 'male', '13000000000', '123@qq.com')
        print(type(stu))  # <class 'json_test.student.Student'>
        stu = stu.__dict__  # 将对象转成dict字典
        print(type(stu))  # <class 'dict'>
        print(stu)  # {'id': '007', 'name': '007', 'age': 28, 'sex': 'male', 'phone': '13000000000', 'email': '123@qq.com'}
        j = json.dumps(obj=stu)
        print(j)  # {"id": "007", "name": "007", "age": 28, "sex": "male", "phone": "13000000000", "email": "123@qq.com"}
    
    
    if __name__ == '__main__':
        obj_to_json()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    json数据转成dict字典

    import json
    
    def json_to_dict():
        j = '{"id": "007", "name": "007", "age": 28, "sex": "male", "phone": "13000000000", "email": "123@qq.com"}'
        dict = json.loads(s=j)
        print(dict)  # {'id': '007', 'name': '007', 'age': 28, 'sex': 'male', 'phone': '13000000000', 'email': '123@qq.com'}
    
    
    if __name__ == '__main__':
        json_to_dict()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    json数据转成对象

    import json
    
    def json_to_obj():
        j = '{"id": "007", "name": "007", "age": 28, "sex": "male", "phone": "13000000000", "email": "123@qq.com"}'
        dict = json.loads(s=j)
        stu = Student()
        stu.__dict__ = dict
        print('id: ' + stu.id + ' name: ' + stu.name + ' age: ' + str(stu.age) + ' sex: ' + str(
            stu.sex) + ' phone: ' + stu.phone + ' email: ' + stu.email)  # id: 007 name: 007 age: 28 sex: male phone: 13000000000 email: 123@qq.com
    
    
    if __name__ == '__main__':
        json_to_obj()
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    json的load()dump()方法的使用

    • dump()方法的使用
    
    import json
    
    def dict_to_json_write_file():
        dict = {}
        dict['name'] = 'many'
        dict['age'] = 10
        dict['sex'] = 'male'
        print(dict)  # {'name': 'many', 'age': 10, 'sex': 'male'}
        with open('1.json', 'w') as f:
            json.dump(dict, f)  # 会在目录下生成一个1.json的文件,文件内容是dict数据转成的json数据
    
    
    if __name__ == '__main__':
        dict_to_json_write_file()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • load()的使用
    import json
    
    def json_file_to_dict():
        with open('1.json', 'r') as f:
            dict = json.load(fp=f)
            print(dict)  # {'name': 'many', 'age': 10, 'sex': 'male'}
    
    
    if __name__ == '__main__':
        json_file_to_dict()
  • 相关阅读:
    day 66 ORM django 简介
    day 65 HTTP协议 Web框架的原理 服务器程序和应用程序
    jQuery的事件绑定和解绑 事件委托 轮播实现 jQuery的ajax jQuery补充
    background 超链接导航栏案例 定位
    继承性和层叠性 权重 盒模型 padding(内边距) border(边框) margin 标准文档流 块级元素和行内元素
    属性选择器 伪类选择器 伪元素选择器 浮动
    css的导入方式 基础选择器 高级选择器
    03-body标签中相关标签
    Java使用内存映射实现大文件的上传
    正则表达式
  • 原文地址:https://www.cnblogs.com/zhaohuanhuan/p/9230583.html
Copyright © 2011-2022 走看看