首页 > 编程语言 >三十六、Python基础语法(JSON操作)

三十六、Python基础语法(JSON操作)

时间:2024-11-10 18:46:17浏览次数:3  
标签:三十六 文件 name Python age json JSON data

JSON(JavaScript Object Notation)是一种基于文本,轻量级的数据交换格式。它易于人阅读和编写,同时也易于机器解析和生成,在自动化测试中经常用来存放测试数据。

JSON的特点:

  • 基于文本,不包含图片、音视频

  • 轻量级,定义相同数据量,JSON占用文件比较小

  • 独立于语言,所有编程语言都可以使用的

  • 数据交换格式,前端和后端的数据交互格式

一、JSON语法

一个 JSON 对象是一组无序的键值对集合,用花括号括起来。键必须是字符串,用双引号括起来;值可以是字符串、数字、布尔值、对象、数组或 null。{"name":"Alice","age":30,"isStudent":false}

一个 JSON 数组是一组有序的值的集合,用方括号括起来。值可以是字符串、数字、布尔值、对象、数组或 null。["apple","banana","orange"] 或者 [{"id":1,"name":"Item 1"},{"id":2,"name":"Item 2"}]

1.键值对

1.键(Key)

  • 键是字符串类型,用于标识对象中的属性。

  • 键必须是唯一的,且区分大小写。

2.值(Value)

值可以是上述任何一种数据类型,与键对应。

2.语法规则

1.分隔符

  • 对象中的键值对用逗号分隔。

  • 数组中的值也用逗号分隔。

2.空白符

  • JSON 对空白符(如空格、制表符、换行符)不敏感,但适当的空白可以增加 JSON 文本的可读性。

例子

{
  "students": [
    {
      "name": "张三",
      "age": 20,
      "grades": [85, 90, 78]
    },
    {
      "name": "李四",
      "age": 21,
      "grades": [92, 88, 95]
    }
  ],
  "schoolName": "Example School",
  "isOpen": true
}

三、JSON文件读取

导入json包,用已读方式打开json文件,获取json文件对象,使用json.load(文件对象)来读取json文件得到列表或者字典

定义一个json文件

{
  "name": "Layne",
  "age": 25,
  "hobbies": ["reading", "painting"]
}

读取这个json文件

import json

# 打开并读取 JSON 文件
with open('data.json', 'r', encoding='utf-8') as file:
    data = json.load(file)

# 打印读取到的数据
print(data)
print("Name:", data["name"])
print("Age:", data["age"])
print("Hobbies:", data["hobbies"])

四、JSON的写入

json写入:是指将python中的字典或者列表直接写入json文件,导入json包,使用'w'打开文件,使用json.dump(Python中的列表或者字典数据,文件对象)保存文件

# 导包 import json
import json

my_dict = {'name': "Layne", "age": 25, "like": ["学习", "羽毛球", "吃饭"]}
# 只写'w'打开文件
with open('info.json', 'w', encoding='utf-8') as file:
    # 使用json.dump(Python中的列表或者字典数据,文件对象)保存文件
    # 禁用ascii编码,解决中文乱码问题 关键字传参要放在
    # indent=2 自动添加4个空格缩进
    json.dump(my_dict, file, ensure_ascii=False, indent=2)

生成文件

标签:三十六,文件,name,Python,age,json,JSON,data
From: https://blog.csdn.net/CSXB99/article/details/143650229

相关文章

  • Python从0到100(六十九):Python OpenCV-图像加噪与滤波
    前言:零基础学Python:Python从0到100最新最全教程。想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Python爬虫、Web开发、计算机视觉、机器学习、神经网络以及人工智能相关知......
  • (开题)flask框架高校科研绩效管理系统设计与实现(程序+论文+python)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着高等教育的快速发展,高校科研活动日益频繁,科研成果丰硕。然而,如何科学、公正地评价教师的科研绩效,成为高校科研管理中的一个重要问题。......
  • (开题)flask框架高校科研信息管理系统(程序+论文+python)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着高等教育的蓬勃发展,高校科研活动日益活跃,科研项目数量激增,科研成果丰硕。然而,传统的科研管理方式已难以适应当前高效、快捷的信息处理......
  • C. 小红打怪 (python解)-牛客
    C.小红打怪(python解)-牛客原题链接:C.小红打怪问题分析:小红的全体打击技能对所有怪物造成1点伤害。队友1的单体打击技能可以对任意单个怪物造成1点伤害。队友2的范围攻击技能可以对相邻的两只怪物分别造成1点伤害(可对已死亡的怪物使用)。思路:设定一个函数check(mx)......
  • Python图片链接爬虫爬取图片代码
    importrequestsurl=‘https://desk-fd.zol-img.com.cn/t_s960x600c5/g5/M00/05/0F/ChMkJ1erCYqIQptxAAPESMfBQZoAAUU6QB4oVwAA8Rg091.jpg’headers={‘user-agent’:‘Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/1......
  • B. Replacement (python解)-codeforces
    B.Replacement(python解)-codeforces原题链接:B.Replacement问题分析:我们有两个二进制字符串:s(长度为n)和r(长度为n-1)。根据游戏规则,我们需要在s上执行n-1次操作。在每次操作中,我们选择一个索引k,使得s[k]和s[k+1]不相同并将这两个字符替换为r[i](第i次操作中r的......
  • 【最新原创毕设】基于移动端的助农电商系统+08655(免费领源码)可做计算机毕业设计JAVA、
    基于移动端的助农电商系统的设计与实现摘要近年来,电子商务的快速发展引起了行业和学术界的高度关注。基于移动端的助农电商系统旨在为用户提供一个简单、高效、便捷的农产品购物体验,它不仅要求用户清晰地查看所需信息,而且还要求界面设计精美,使得功能与页面完美融合,从而提升......
  • (2024最新毕设合集)基于SpringBoot的梓锦社区疫苗接种服务系统+42529|可做计算机毕业设
    目 录摘要1绪论1.1选题背景与意义1.2开发现状1.3论文结构与章节安排2 梓锦社区疫苗接种服务系统系统分析2.1可行性分析2.1.1技术可行性分析2.1.2 经济可行性分析2.1.3法律可行性分析2.2系统功能分析2.2.1功能性分析2.2.2非功能性分析2.......
  • Python 入门-2
    1.函数输出函数:print 1.*values:表示可以一次性输出多个对象,输出多个对象时,需要用,隔开(英文逗号) 输出多个内容逗号隔开,英文符号 print('哈哈哈','嘻嘻嘻','嘿嘿嘿')2.sep:用来间隔多个对象,默认值是一个空格,可随意更换 print('哈哈哈','嘻嘻嘻','嘿嘿嘿',sep=',') sep......
  • Python中输入和输出的详细解读
    文章目录一、输入1.input()函数2.eval()函数3.多个变量的输入(1)split()函数(2)map()函数二、输出1.print()函数2.字符串格式化format()方法3.字符串格式化占位符%一、输入1.input()函数input()可以读取用户键盘输入的值,并以字符串的形式赋值给我们随意定义的变量中......