python中json与dict之间转换

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‘, ‘[email protected]‘)
    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‘: ‘[email protected]‘}
    j = json.dumps(obj=stu)
    print(j)  # {"id": "007", "name": "007", "age": 28, "sex": "male", "phone": "13000000000", "email": "[email protected]"}

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": "[email protected]"}‘
    dict = json.loads(s=j)
    print(dict)  # {‘id‘: ‘007‘, ‘name‘: ‘007‘, ‘age‘: 28, ‘sex‘: ‘male‘, ‘phone‘: ‘13000000000‘, ‘email‘: ‘[email protected]‘}

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": "[email protected]"}‘
    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: [email protected]

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

原文地址:https://www.cnblogs.com/zhaohuanhuan/p/9230583.html

时间: 2024-08-01 10:46:06

python中json与dict之间转换的相关文章

python 中json和字符串互相转换

string =" {  "status": "error",  "messages": ["Could not find resource or operation 'BZK1.MapServer' on the system."],  "code": 404 }" print  '对象:' string print '取值:' json.loads(string)['code'] 输

python中文和unicode字符串之间的互相转换

首先:中文->unicode字符串 import chardet import codecs >>> a = "我是一个中国人">>> a'\xce\xd2\xca\xc7\xd2\xbb\xb8\xf6\xd6\xd0\xb9\xfa\xc8\xcb' >>> chardet.detect(a){'confidence': 0.99, 'encoding': 'GB2312'}>>> b = a.decod

python中json.dumps使用的坑以及字符编码

我们知道,python中的字符串分普通字符串和unicode字符串,一般从数据库中读取的字符串会自动被转换为unicode字符串 下面回到重点,使用json.dumps时,一般的用法为: >>> obj={"name":"测试"} >>> json.dumps(obj)'{"name": "\\u6d4b\\u8bd5"}' >>> print json.dumps(obj

python 中json has no attribute &#39;loads&#39;

在python爬虫时出现了json has no attribute 'loads'问题. 1 可能是没有安装json包,cmd-pip install json, 显示已安装. 2 当前盘中存在json.py文件,导致错误. 因为我的python文件是保存在F盘中的,而F盘中有名为json.py的文件,所以运行程序时首先在F盘中寻找json文件,名称有json的被认为json包,而其中没有loads模块. 3 解决办法:把F盘中的json.py改名为json1.py重新运行程序,问题解决. p

python中各种常用类型的转换的代码

在学习过程中,将写代码过程中常用的内容做个收藏,下面代码是关于python中各种常用类型的转换的代码,应该是对码农们有一些用. int(x [,base ]) 将x转换为一个整数 long(x [,base ]) 将x转换为一个长整数 float(x ) 将x转换到一个浮点数 complex(real [,imag ]) 创建一个复数 str(x ) 将对象 x 转换为字符串 repr(x ) 将对象 x 转换为表达式字符串 eval(str ) 用来计算在字符串中的有效Python表达式,并返

[ Python入门教程 ] Python中JSON模块基本使用方法

JSON (JavaScript Object Notation)是一种使用广泛的轻量数据格式,Python标准库中的json模块提供了一种简单的方法来编码和解码JSON格式的数据.用于完成字符串和python数据类型间进行转换. json模块基本函数   json.dumps():把Python数据类型转换成JSON字符串   json.loads():把JSON字符串转换成Python数据类型   json.dump():把Python数据类型转换成JSON字符串并存储在文件中   json

Python中json的应用(转)

python中的 json 模块使用 注:测试环境 OS:Ubuntu 16.04 LTS Python:Python 2.7.11+ (1)python 中生成 json 字符串: import json data = dict(ret=0, msg="Welcome, Login success!") json_str = json.dumps(data, sort_keys=True) print json_str (2)python 中解析 json字符串: import js

python中json模块dumps和loads的区分

b=urllib2.urlopen("http://www.baidu.com")a=b.read()#这里读取的是html中的json格式的内容a1=json.loads(a)#把读取到的内容从json转换成Python中的字典格式print a1['消息状态']#用Python中的字典取值方法 a2=json.dumps(a1)#此时a1已经相当于Python中的字典了,不能称之为json了,此法可以把Python中的字典再次转成json

python中json.load()、json.loads()、json.dump()、json.dumps()的区别

json.load()从文件中读取json字符串 json.loads()将json字符串转换为字典类型 json.dumps()将python中的字典类型转换为字符串类型 json.dump()将json格式字符串写到文件中 1.json.load() with open('text.json','r',encoding='utf-8') as f : print(json.load(f)) { "name": "anthony", "sex"