您的位置:

Python json转对象

一、什么是Json

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。它基于JavaScript语法,但与之无关。JSON具有良好的可读性和扩展性,已经成为广泛应用的数据交换格式,被广泛用于Web服务之间的数据通信。

二、Json转Python对象

Python内置的json模块提供了将json字符串转化为python对象的功能。其中主要有以下几个函数:

  • json.loads():将json字符串解码为Python对象。
  • json.load():从文件读取json,并将其解码为Python对象。
import json

#json字符串
json_str = '{"name":"Tom", "age": 18, "gender": "male"}'

#将json字符串转化为Python对象
python_obj = json.loads(json_str)

print(python_obj)
#输出结果:{'name': 'Tom', 'age': 18, 'gender': 'male'}

三、Python对象转Json

同样,Python内置的json模块也提供了将python对象转化为json字符串的功能。其中主要有以下几个函数:

  • json.dumps():将Python对象编码成json字符串。
  • json.dump():将Python对象编码成json字符串,并写入文件。
import json

#Python对象
python_obj = {
    "name": "Tom",
    "age": 18,
    "gender": "male"
}

#将Python对象转化为json字符串
json_str = json.dumps(python_obj)

print(json_str)
#输出结果:{"name": "Tom", "age": 18, "gender": "male"}

四、Json转Python自定义对象

json模块只能将json字符串转化为Python内置类型的对象,但是我们也可以通过一些自定义的方式,将json字符串转化为Python自定义类型的对象。

import json

#自定义类
class Person:
    def __init__(self, name, age, gender):
        self.name = name
        self.age = age
        self.gender = gender

#json字符串
json_str = '{"name":"Tom", "age": 18, "gender": "male"}'

#将json字符串转化为Python内置类型的对象
python_obj = json.loads(json_str)

#将Python内置类型对象转化为自定义类型的对象
person = Person(**python_obj)

print(person.name, person.age, person.gender)
#输出结果:Tom 18 male

五、Python自定义对象转Json

同样可以通过自定义方式,将Python自定义类型的对象转化为json字符串。

import json

#自定义类
class Person:
    def __init__(self, name, age, gender):
        self.name = name
        self.age = age
        self.gender = gender

    #将对象转换为Python内置类型的字典
    def to_dict(self):
        return {
            "name": self.name,
            "age": self.age,
            "gender": self.gender
        }

#自定义类型对象
person = Person("Tom", 18, "male")

#将Python自定义类型的对象转化为Python内置类型的字典
python_dict = person.to_dict()

#将Python内置类型的字典转化为json字符串
json_str = json.dumps(python_dict)

print(json_str)
#输出结果:{"name": "Tom", "age": 18, "gender": "male"}

六、Json的高级操作

json模块还提供了一些高级的操作,例如:

  • 使用ensure_ascii=False参数输出为中文字符串。
  • 使用sort_keys参数将键按字典序排列。
  • 使用default关键字参数指定一个函数,将不可序列化类型的对象转化为可序列化的对象。
import json

#自定义类
class Person:
    def __init__(self, name, age, gender):
        self.name = name
        self.age = age
        self.gender = gender

    def to_dict(self):
        return {
            "name": self.name,
            "age": self.age,
            "gender": self.gender
        }

#自定义类型对象
person = Person("Tom", 18, "male")

#使用sort_keys参数将字典按照键的字典序排列
json_str = json.dumps(person.to_dict(), sort_keys=True)

print(json_str)
#输出结果:{"age": 18, "gender": "male", "name": "Tom"}
python对象json,python对象没有这个属性

2022-11-25
python中json解析转换,python 对象转json

2022-11-25
python构建json串,python对象转为json串的

本文目录一览: 1、Python爬虫(七)数据处理方法之JSON 2、【Python】浅谈python中的json 3、python之json格式转化 Python爬虫(七)数据处理方法之JSON J

2023-12-08
印象笔记记录java学习(Java成长笔记)

2022-11-12
python基础学习整理笔记,Python课堂笔记

2022-11-21
Python中json字符串与json对象转换详解

2023-05-20
json数据转csv(json数据转成对象)

本文目录一览: 1、如何将 JSON,Text,XML,CSV 数据文件导入 MySQL 2、在pycharm中怎么把json文件转换为csv 3、如何将CSV格式转换成JSON格式 4、如何将jso

2023-12-08
python笔记第六天,python第六周笔记

2022-11-21
Python json转对象

2023-05-21
最新python学习笔记3,python基础笔记

2022-11-17
python学习日记day4(大学python笔记整理)

2022-11-13
Python字符串转JSON对象

2023-05-20
我的python笔记06(Python)

2022-11-14
java笔记,大学java笔记

2022-11-28
python技巧笔记(python自学笔记)

2022-11-12
java方法整理笔记(java总结)

2022-11-08
python学习笔记一之,python入门笔记

2022-11-21
python方法笔记,python基础教程笔记

2022-11-20
python转成json,python数据转换

2022-11-24
包含python对比json的词条

本文目录一览: 1、用python依次比较2个文件夹内的JSON文件的差异? 2、【Python】浅谈python中的json 3、python3,如何对比2个结构一样的json? 用python依次

2023-12-08