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

╰+哭是因爲堅強的太久メ 2022-06-07 12:47 255阅读 0赞

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数据

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

对象转json数据

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

json数据转成dict字典

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

json数据转成对象

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

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

  • dump()方法的使用

    import json

    def dict_to_json_write_file():

    1. dict = {}
    2. dict['name'] = 'many'
    3. dict['age'] = 10
    4. dict['sex'] = 'male'
    5. print(dict) # {'name': 'many', 'age': 10, 'sex': 'male'}
    6. with open('1.json', 'w') as f:
    7. json.dump(dict, f) # 会在目录下生成一个1.json的文件,文件内容是dict数据转成的json数据
  1. if __name__ == '__main__':
  2. dict_to_json_write_file()
  • load()的使用

    import json

    def json_file_to_dict():

    1. with open('1.json', 'r') as f:
    2. dict = json.load(fp=f)
    3. print(dict) # {'name': 'many', 'age': 10, 'sex': 'male'}
  1. if __name__ == '__main__':
  2. json_file_to_dict()

发表评论

表情:
评论列表 (有 0 条评论,255人围观)

还没有评论,来说两句吧...

相关阅读

    相关 java中stringjson互相转化

    在Java中socket传输数据时,数据类型往往比较难选择。可能要考虑带宽、跨语言、版本的兼容等问题。比较常见的做法有两种:一是把对象包装成JSON字符串传输,二是采用j...