码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-07-16 19:01:21      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:不可   一个   __name__   nbsp   serve   pre   class   ima   div   

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

 

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

标签:不可   一个   __name__   nbsp   serve   pre   class   ima   div   

原文地址:https://www.cnblogs.com/qmfsun/p/11196471.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!