json教程零基础入门:语法格式详解+Python解析实战,新手快速上手指南

admin python教程 28


零基础学 JSON 的朋友是不是都有这样的困惑?看到 {"name":"小明","age":18} 这种格式一脸懵,分不清它和 Python 字典有啥区别;想把 Python 数据存成 JSON 文件,结果报一堆格式错误;解析 JSON 数据时,要么取不出值,要么把列表当成对象来用。别着急,兔子哥刚开始学 JSON 时,光是搞懂双引号和单引号的区别就花了半天,把 Python 字典直接存成 JSON 文件更是报错到怀疑人生。今天就带零基础的朋友从语法格式到 Python 解析实战,一步步入门 JSON,新手跟着学,轻松搞定数据存储和解析!

一、先搞懂:JSON 到底是啥?为啥非要学它?


可能有朋友会问:“我学 Python 够用了,为啥还要学 JSON?” 这你就不知道了,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,不管是前后端交互、API 接口数据传输,还是配置文件存储,几乎都离不开它。
简单说,JSON 就像一种 “通用语言”,不同编程语言(Python、Java、JavaScript 等)都能看懂它。比如你用 Python 爬取的数据,想传给前端 JavaScript 展示,用 JSON 格式最方便;你写的程序需要保存配置信息,JSON 文件比纯文本更清晰、更好读。
咱们日常开发中,处理 API 返回数据、保存用户信息、配置程序参数,这些场景都得用到 JSON,学会它,数据处理能力能直接提升一个档次。
数据格式优点缺点适用场景
JSON轻量、易读、跨语言支持好不支持注释(新版支持)API 数据、配置文件
XML支持注释、结构严谨冗余代码多、解析复杂传统企业级应用
Python 字典Python 原生支持不能直接跨语言传输仅 Python 内部使用



二、JSON 语法格式详解:3 个核心规则,5 种数据类型


JSON 语法看着简单,但新手很容易踩格式坑,这几个核心规则和数据类型必须记牢。
  1. 核心语法规则:这 3 点错了就会报错

  • 键值对用"键": "值"表示,键必须用双引号包裹(单引号不行),比如"name": "小明"正确,'name': "小明"name: "小明"都会报错。
  • 多个键值对之间用逗号分隔,但最后一个键值对后面不能加逗号( trailing comma),比如{"a":1, "b":2}正确,{"a":1, "b":2,}会报错。
  • 整体用大括号{}表示对象,用中括号[]表示数组,嵌套时要注意层级关系,比如{"user": {"name": "小明", "hobby": ["篮球", "游戏"]}}是正确的嵌套结构。

  1. 5 种常用数据类型:JSON 能存这些数据

  • 字符串:必须用双引号包裹,比如"name": "小红",不能用单引号或不加引号。
  • 数字:整数或浮点数,比如"age": 18 {"score": 95.5},不用加引号。
  • 布尔值:只有truefalse(小写),比如"is_student": true,注意不能大写(True/False 是 Python 的写法)。
  • 数组:用中括号包裹的有序列表,元素可以是任意数据类型,比如"hobby": ["跑步", "读书"] {"scores": [90, 85, 95]}
  • 对象:用大括号包裹的键值对集合,可以嵌套,比如"user": {"name": "小李", "age": 20}

兔子哥提醒:JSON 里没有 Python 的None,对应的是null(小写);也没有日期类型,日期通常存成字符串,比如"birthday": "2005-01-01"


三、Python 解析 JSON 实战:4 个核心方法,读写数据全搞定


Python 自带json模块,不用额外安装,这 4 个方法学会了,JSON 读写解析全不愁。
  1. dumps ():把 Python 数据转成 JSON 字符串
    当你需要把 Python 字典或列表传给前端,或存成 JSON 格式的字符串时,用dumps()
    示例:

python
import json# Python字典user = {"name": "小明","age": 18,"is_student": True,"hobby": ["篮球", "游戏"]}# 转成JSON字符串json_str = json.dumps(user, ensure_ascii=False, indent=2)print(json_str)

输出结果:
json
{"name": "小明","age": 18,"is_student": true,"hobby": ["篮球","游戏"]}

关键点ensure_ascii=False确保中文正常显示(不然会变成 Unicode 编码);indent=2让输出有缩进,更易读。
  1. dump ():把 Python 数据直接写入 JSON 文件
    想把数据保存成 JSON 文件,用dump()更方便,不用先转字符串再写文件。
    示例:

python
# 写入JSON文件with open("user.json", "w", encoding="utf-8") as f:json.dump(user, f, ensure_ascii=False, indent=2)

运行后会生成user.json文件,内容和上面的 JSON 字符串一样,是不是很简单?
  1. loads ():把 JSON 字符串转成 Python 数据
    从 API 接口拿到 JSON 格式的字符串,想用 Python 处理,用loads()转成字典或列表。
    示例:

python
# JSON字符串json_str = '{"name": "小红", "age": 19, "hobby": ["画画", "唱歌"]}'# 转成Python字典user_dict = json.loads(json_str)print(user_dict["name"])  # 输出:小红print(user_dict["hobby"][0])  # 输出:画画

  1. load ():直接读取 JSON 文件并转成 Python 数据
    读取 JSON 文件里的数据,用load()一步到位,不用先读文件再转数据。
    示例:

python
# 读取JSON文件with open("user.json", "r", encoding="utf-8") as f:user_data = json.load(f)print(user_data["age"])  # 输出:18(前面保存的小明的年龄)



四、新手常踩的 5 个坑及解决方法,照着改少走弯路


  1. 用单引号或不加引号包裹键,导致格式错误
    错误写法:{'name': '小明'}{name: "小明"}
    解决方法:键必须用双引号,正确写法:{"name": "小明"}。兔子哥第一次写 JSON 就用了单引号,报错半天没找到原因。
  2. 最后一个键值对加逗号,JSON 解析失败
    错误写法:{"a": 1, "b": 2,}
    解决方法:去掉末尾逗号,正确写法:{"a": 1, "b": 2}。很多新手习惯了 Python 的语法,顺手加逗号,JSON 可不认哦。
  3. 中文显示成 Unicode 编码(如 \u5c0f\u660e)
    原因:dumps()dump()时没加ensure_ascii=False
    解决方法:加上参数,json.dumps(data, ensure_ascii=False),中文就能正常显示了。
  4. 混淆 Python 和 JSON 的布尔值 / 空值
    错误写法:JSON 里用True False None
    解决方法:JSON 里必须用true false null(全小写),Python 转 JSON 时会自动转换,但手动写 JSON 要注意。
  5. 解析嵌套 JSON 时取错层级
    比如 JSON 数据是{"user": {"name": "小明", "age": 18}},直接用data["name"]会报错。
    解决方法:按层级取,data["user"]["name"]才能拿到 “小明”,可以先打印数据结构,确认层级关系。



五、自问自答:JSON 新手常问的 3 个问题


  1. “JSON 里能写注释吗?我想加说明怎么办?”
    老版 JSON 不支持注释,但 JSON5(JSON 的扩展)支持。如果用标准 JSON,建议把注释写在单独的文档里,或在不影响解析的地方加个 “_comment” 键,比如{"_comment": "这是用户信息", "name": "小明"}
  2. “Python 字典和 JSON 长得差不多,为啥还要转来转去?”
    因为字典是 Python 独有的数据类型,离开 Python 环境就不认识了;而 JSON 是通用格式,其他语言都能解析。比如你用 Python 生成的字典,想传给 JavaScript 用,必须转成 JSON 字符串才行。
  3. “处理大 JSON 文件时内存不够,怎么办?”
    如果 JSON 文件很大(比如几 GB),用load()一次性读入会占满内存。可以用ijson这类第三方库,按流的方式逐步解析,按需读取数据,不会占用太多内存。

结尾见解


JSON 入门不难,难在注意格式细节和熟练使用 Python 的json模块。新手学习时,别光看教程,一定要多动手写 JSON、转数据、读文件,写错了别怕,看看报错信息,对照语法规则改,很快就能掌握。兔子哥的经验是,把常用的dumps() dump() loads() load()方法写成代码模板,用到时直接套,效率超高。记住,JSON 是数据处理的 “基本功”,学会它,不管是做爬虫、开发 API 还是写配置文件,都能轻松应对!

标签: 编程语言 零基础

发布评论 1条评论)

  • Refresh code

评论列表

2025-10-24 23:05:33

零基础学JSON,易学语法详解Python实战