zoukankan      html  css  js  c++  java
  • 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()

    对象转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()

    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()

    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()

    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()
    • 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()

    mport json
    d1 = {
        'en':'英语',
        'cn':'中文',
        'fr':'法语',
        'jp':'日语'
    }
    print('d1',d1)
    j1 = json.dumps(d1) # dict 变 json
    print('j1',j1)
    d2 = json.loads(j1) # json 变 dict
    print('d2',d2)
     
    with open('test.json','w+') as f:
        json.dump(d1, f)
     
    with open('test.json','r+') as f:
        d3 = json.load(f)
        print('d3',d3)
    import json
    d1 = {'en':'英语','cn':'中文','fr':'法语','jp':'日语'}
    dict1 = {"server":[{"hostname": "172.20.20.18", "username": "Agoly", "password": "123456"},]}
    
    if __name__ == '__main__':
    
        print (json.dumps(d1))
        print(json.dumps(dict1))
  • 相关阅读:
    STL中关于map和set的四个问题?
    PHP之Zip扩展,解压缩文件,ZipArchive类
    PHP之音乐ID3扩展
    关于PHP执行超时的问题
    PHP中GD库安装
    PHP之输出控制 ob_start(),ob_get_contents(),ob_end_clean()
    PHP之xdebug详解
    PHP上传文件详解
    php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证及缺点
    深入研究php://input与php://output
  • 原文地址:https://www.cnblogs.com/qmfsun/p/11196471.html
Copyright © 2011-2022 走看看