Python快速上手系列--JSON--入门篇

简介: Python快速上手系列--JSON--入门篇

  这里是清安,本章我们来看看json的一些应用。简单易懂还实用。

       一起来看看数据类型以及一些语法规则吧

1、数字(整数或浮点数) 如:{"age":18, "score":70.5} 注意,数字直接写,不需要带任何符号2、字符串(在双引号中) 如:{"name":"清安”, "sex":"男"} 注意:字符串是用双引号或者单引号引起 来的内容3、逻辑值(true 或 false) 如:{ "flag":true } 注意:true,false,直接写,不需要加引号4、数组(在中括号中) 如 :{"score" : [100,80,90]} 标识符:[],数组类型是有索引值,索 引值是从0开始的5、对象(在大括号中) 如:{ "stu1":{"name":"清安" , "sex":"男"} , "url":"https://blog.csdn.net/weixin_52040868" }6、null 如 :{"score" : Null}

JSON与字典的区别

       json--key只能是字符串,value:(字符串, 数字, 对象, 数组, 布尔值或 null)

       dict--key可以是数字(整数,浮点数,布尔值),字符串,元组,就是不能为列表 value可以是数字(整数,浮点数,布尔值),字符串,元组,列表,字典

方法 作用
json.dumps() 将python对象编码成Json字符串
json.loads() 将Json字符串解码成python对象
json.dump() 将python中的对象转化成json储存到文件中
json.load() 将文件中的json的格式转化成python对象提取出来

看例子

dump

import json
name = ['清安', '男', 18]
with open('name.json', 'w') as file_name:
    i = json.dump(name, file_name)
    print(type(i), id(i))
# <class 'NoneType'> 140726372809944

       需要先导入json的包,我们首先创建一个列表,然后我们使用with open()创建一个名为name.json的文件,json.dump()是用来存储数据的,所以这里是创建一个文件并将name列表写入。

load

       写入了列表内容后,我们怎么读取到已经存储到name.json中的内容呢,那么我们就需要用到json.load()函数了。

with open('name.json', 'r', encoding='utf-8') as r:
    rd = json.load(r)
    print(type(rd), id(rd))
# <class 'list'> 1829847702976

       这里我们可以定义一个变量去接收json.load()函数读取的内容再通过print打印出来。

dumps

data_1 = {"stu1": {'name': '清安', "sex": "男"}, "url": "https://blog.csdn.net/weixin_52040868"}
print(type(data_1), id(data_1))
dumps_ = json.dumps(data_1, ensure_ascii=False)
print(type(dumps_), id(dumps_))
print(dumps_)
# <class 'dict'> 1607962417344
# <class 'str'> 2222289040752

       正如上面所说,将python对象编码成Json字符串,本身我们定义的变量就是字典类型的,经过dumps函数转变后,就是字符串格式了。

       值得注意的是:'name': '清安',这里是单引号,经过dumps函数转变后,变成了双引号。这也就是我们前面说的"字符串(在双引号中)"。单双引号的在字典中都可行,但是在json中只能是双引号。

load

data_2 = '{"stu1": {"name": "清安", "sex": "男"}, "url": "https://blog.csdn.net/weixin_52040868"}'
print(type(data_2), id(data_2))
loads_ = json.loads(data_2)
print(type(loads_), id(loads_))
print(loads_["stu1"])
# <class 'str'> 1607965048368
# <class 'dict'> 1607965495552
# {'name': '清安', 'sex': '男'}

       这里也是的,我们将上述例子稍作改变,改成字符串,我们可以通过loads函数直接变成我们所需要的对象,这里是字典类型的。至于取值,我们就跟字典取值类似的方法。

       这里还有一个小实例,仅供参考,小伙伴也可以跟着一起码一码:

try:
    with open('name_.json', 'r') as file_name:
        names = json.load(file_name)
        print(names)
except:
    i = input("请输入名字:")
    with open('name_.json', 'w') as f:
        json.dump(i, f)
        print(f"{i}")

       这里使用之前所讲的异常处理,忘记了的小伙伴可以复习复习,如果没有这个json文件,那么就是进入except,控制台输入,然后自动创建一个文件。

目录
相关文章
|
4天前
|
存储 JSON 数据处理
|
5天前
|
JSON 数据可视化 定位技术
python_将包含汉字的字典数据写入json(将datav的全省数据中的贵州区域数据取出来)
python_将包含汉字的字典数据写入json(将datav的全省数据中的贵州区域数据取出来)
13 0
|
6天前
|
Python
Python从入门到精通:深入学习面向对象编程——2.1.2继承、封装和多态的概念
Python从入门到精通:深入学习面向对象编程——2.1.2继承、封装和多态的概念
|
6天前
|
存储 索引 Python
Python从入门到精通——1.3.1练习编写简单程序
Python从入门到精通——1.3.1练习编写简单程序
|
6天前
|
Python
Python从入门到精通——1.2.2学习基础语法和数据类型之控制结构
Python从入门到精通——1.2.2学习基础语法和数据类型之控制结构
|
6天前
|
机器学习/深度学习 存储 数据挖掘
Python从入门到精通——学习基础语法和数据类型 1.2.1变量、整数、浮点数、字符串、布尔值、列表、元组、字典和集合。
Python从入门到精通——学习基础语法和数据类型 1.2.1变量、整数、浮点数、字符串、布尔值、列表、元组、字典和集合。
|
7天前
|
开发框架 前端开发 数据库
Python从入门到精通:3.3.2 深入学习Python库和框架:Web开发框架的探索与实践
Python从入门到精通:3.3.2 深入学习Python库和框架:Web开发框架的探索与实践
|
6天前
|
数据采集 数据可视化 数据处理
Python从入门到精通的文章3.3.1 深入学习Python库和框架:数据处理与可视化的利器
Python从入门到精通的文章3.3.1 深入学习Python库和框架:数据处理与可视化的利器
|
6天前
|
Java 数据库连接 数据处理
Python从入门到精通:3.1.2多线程与多进程编程
Python从入门到精通:3.1.2多线程与多进程编程
|
7天前
|
消息中间件 安全 调度
Python从入门到精通:3.1.1多线程与多进程——进程和线程的概念
Python从入门到精通:3.1.1多线程与多进程——进程和线程的概念