【语法】JSON格式与基础语法

文章目录

  • JSON 简介
  • JSON 语法规则
    • JSON 名称/值对
    • JSON 值类型
    • JSON文件存储
  • JSON示例
    • 数据示例
    • Python解析JSON代码

JSON 简介

  • JSON 语法是 JavaScript 语法的子集。
  • JSON 是存储和交换文本信息的语法。
  • JSON: JavaScript Object Notation(JavaScript 对象表示法)。

JSON 语法规则

  • 数据在名称/值对中。
  • 数据由逗号分隔。
  • 花括号保存对象。
  • 方括号保存数组。

JSON 名称/值对

JSON 数据的书写格式是:名称/值对。

名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:

 "name" : "ojbk"

JSON 值类型

JSON 值可以是:

  • 数字(整数或浮点数)
  • 字符串(在双引号中)
  • 逻辑值(true 或 false)
  • 数组(在方括号中)
  • 对象(在花括号中)
  • null

JSON文件存储

  • 文件编码建议UTF-8
  • 常用文件扩展名:.json或.jsonc(含注释时)

JSON示例

数据示例

{"user": {"id": "ojbk","profile": {"name": "某某","age": 35,"interests": ["编程", "摄影"]}}
}

Python解析JSON代码

以下是Python解析JSON的常用方法说明:

  1. 基础解析方法
import json# 从字符串解析
json_str = '{"name": "Alice", "age": 25}'
data = json.loads(json_str)  # 返回字典类型
print(data['name'])  # 输出: Alice# 从文件解析
with open('data.json', 'r', encoding='utf-8') as f:file_data = json.load(f)
  1. 生成JSON
# 字典转JSON字符串
data_dict = {"city": "北京", "population": 2171}
json_str = json.dumps(data_dict, ensure_ascii=False)  # 中文不转义
print(json_str)  # 输出: {"city": "北京", "population": 2171}# 写入JSON文件
with open('output.json', 'w', encoding='utf-8') as f:json.dump(data_dict, f, indent=2)  # 缩进美化
  1. 特殊参数说明
  • ensure_ascii: 控制非ASCII字符转义(False显示原文)
  • indent: 缩进空格数(美化输出)
  • sort_keys: 按键名排序(默认False)
  1. 异常处理
try:data = json.loads(invalid_json_str)
except json.JSONDecodeError as e:print(f"JSON解析错误: {e.msg} (行{e.lineno}{e.colno})")
  1. 数据类型对应关系
JSON类型Python类型
objectdict
arraylist
stringstr
numberint/float
true/falsebool
nullNone

需要解析特定格式的JSON文件或处理复杂嵌套结构时,可以进一步说明需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/93467.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/93467.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GitHub 热榜项目 - 日榜(2025-08-16)

GitHub 热榜项目 - 日榜(2025-08-16) 生成于:2025-08-16 统计摘要 共发现热门项目:13 个 榜单类型:日榜 本期热点趋势总结 本期GitHub热榜呈现三大技术热点:1) AI应用深入垂直领域,SpatialLM将大语言模型应用于空间…

什么是EDA(Exploratory Data Analysis,探索性数据分析)

EDA(Exploratory Data Analysis,探索性数据分析)是一种在正式建模前,通过统计量和可视化方法来理解数据特征、发现模式与异常、并提出假设的过程。 这张图里你会看到: 直方图:展示单变量的分布,…

计算机毕业设计java的小天鹅酒店月子会所管理小天鹅酒店母婴护理中心管理系统设计小天鹅酒店产后护理会所信息化管理平台

计算机毕业设计java的小天鹅酒店月子会所管理9zl079(配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。在当今数字化时代,随着人们对产后护理需求的不断增加,…

Docker-14.项目部署-DockerCompose

一.DockerCompose大家可以看到,我们部署一个简单的java项目,其中包含3个容器:MySQLNginxJava项目而稍微复杂的项目,其中还会有各种各样的其它中间件,需要部署的东西远不止3个。如果还像之前那样手动的逐一部署&#xf…

Vue组件基础解析

一、组件的核心意义 组件是Vue中实现UI复用与逻辑封装的基础单元,能将复杂UI拆分为独立、可重用的部分,最终组织成嵌套的树状结构(类似HTML元素嵌套)。Vue组件模型支持自定义内容与逻辑封装,也能兼容原生Web Component。 二、组件的定义方式 根据是否使用构建步骤,Vue…

第5问 对于数据分析领域,统计学要学到什么程度?

1. ​统计学在数据分析中的定位​​核心作用​:统计学是数据分析的底层方法论,涵盖数据描述、推断预测和模型构建。​两大分支​:​描述统计​(EDA阶段):数据清洗、特征工程的基础(如均值/分布/…

[go] 桥接模式

桥接模式 是一种结构型设计模式, 可将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构, 从而能在开发时分别使用。 模型说明抽象部分(Abstraction)提供高层控制逻辑,依赖于完成底层实际工作的实现对象…

GitHub的使用教程

第一章:准备工作 1.1:安装Git并设置你的GitHub账户 1.1.1:注册 GitHub 账号: 访问 https://github.com/ 并注册一个新账号。 可以使用qq邮箱进行注册 输入邮箱后点击sign up for GitHub,设置密码后进行注册,输入验…

Day56 Java面向对象10 方法重写

Day56 Java面向对象10 方法重写 1.为什么要方法重写 当子类不需要父类方法的全部内容 或 父类的方法无法满足子类的需求时,就需要在子类重写父类的方法 2.如何方法重写 重写必须发生在继承关系中,只能是子类重写父类子类重写的方法名必须和父类方法一致,方法体可以不同子类重写…

【C++】标准库中用于组合多个值的数据结构pair、tuple、array...

在 C 标准库中,有多种数据结构可用于组合多个值,每种结构都有其特定的设计目的和适用场景。以下是主要组合数据结构的分类解析: 一、核心组合数据结构 1. std::pair (C98) 用途:存储两个相关值(键值对、坐标点等&#…

深入解析C++ STL链表(List)模拟实现

目录 一、需要实现的三个类及其成员函数接口 二、结点类的模拟实现 构造函数 三、迭代器类的模拟实现 1、迭代器类的作用 2、迭代器类模板参数说明 3、构造函数 4、前置运算符重载 5、后置运算符重载 6、前置 -- 运算符重载 7、后置 -- 运算符重载 8、运算符重载 …

将mysql数据库表结构导出成DBML格式

前言 DBML(数据库标记语言)是一种简单易读的 DSL 语言,用于定义数据库结构。 因为需要分析商品模块的表设计是否合理,所以需要图形化表,并显示表之前的关系。 想来想去,找到了DBML。所以就需要将数据库结构…

玩转tokenizer

🌟 案例 1:加载现成的 BERT 分词器from tokenizers import Tokenizer# 加载一个预训练的 BERT tokenizer(文件需要提前下载,比如bert-base-uncased) tokenizer Tokenizer.from_file("bert-base-uncased-tokenize…

Day53--图论--106. 岛屿的周长(卡码网),110. 字符串接龙(卡码网),105. 有向图的完全联通(卡码网)

Day53–图论–106. 岛屿的周长(卡码网),110. 字符串接龙(卡码网),105. 有向图的完全联通(卡码网) 106. 岛屿的周长(卡码网) 方法:深搜 思路&am…

Elasticsearch 数据建模与映射(Mapping)详解

在 Elasticsearch 中,数据建模与映射(Mapping) 是决定搜索性能、存储效率和功能支持的核心环节。合理的映射设计能让搜索更精准、聚合更高效、存储更节省。 本文将全面详解 Elasticsearch 的 数据建模原则、字段类型、动态映射、自定义分析器…

5G工业一体机汽车零部件工厂的无纸化管理

在全球数字化转型的浪潮中,制造业对信息化、智能化的需求日益强烈。尤其是在汽车零部件领域,生产线的复杂性、质量追溯的苛刻性以及对效率的高要求,迫切需要一种高效、可靠、可扩展的管理模式。以“5G工业一体机”为核心的无纸化管理&#xf…

项目管理工具

1、概述IT 项目生命周期通常可分为启动、规划、执行、监控与控制、收尾五个核心阶段,每个阶段的目标和任务不同,所依赖的工具也各有侧重。以下按阶段梳理常用工具,涵盖项目管理、协作、技术开发等多个维度。2、启动阶段:明确项目目…

Linux 进程、线程与 exec/系统调用详解

1. wait 与 waitpid —— 子进程资源回收1.1 waitpid_t wait(int *wstatus);功能:阻塞等待,回收任意子进程的资源空间。参数:wstatus:保存子进程退出状态的变量地址NULL:不保存退出状态返回值:成功&#xf…

Laravel 使用ssh链接远程数据库

1.创建ssh ssh -i ./id_rsa -N -L 13306:127.0.0.1:3306 -p 22 root***对上述代码的解释: 命令是一个SSH隧道命令,用于将本地端口3306转发到远程服务器上的3306端口。以下是命令的详细解释:# 调用SSH客户端。 ssh # 指定用于身份验证的私钥文…

Python延申内容(一)

1.技术面试题 (1)TCP与UDP的区别是什么? 答: TCP(传输控制协议):面向连接、可靠传输(数据完整有序)、流量控制、拥塞控制,适用于文件传输、网页浏览等场景。 …