Python之dict(或對象)與json之間轉化

在Python語言中,json數據與dict字典以及對象之間的轉化,是必不可少的操做。json

在Python中自帶json庫。經過import json導入。spa

在json模塊有2個方法,code

  • loads():將json數據轉化成dict數據
  • dumps():將dict數據轉化成json數據
  • load():讀取json文件數據,轉成dict數據
  • dump():將dict數據轉化成json數據後寫入json文件

 

下面是具體的示例:server

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))
相關文章
相關標籤/搜索