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

匿名 (未验证) 提交于 2019-12-02 22:54:36

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()
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!