Python结合json教程零基础入门实战案例详解

admin python教程 4


刚学 Python 的朋友,是不是常遇到这些麻烦?爬了点数据想存起来,用 txt 存得乱七八糟,下次读的时候根本找不到对应内容;调用接口返回一串带括号的文字,看着像字典又不是字典,想取里面的信息半天没头绪;听说 JSON 好用,但不知道怎么用 Python 操作它。别着急,今天兔子哥就带大家从零开始,把 Python 和 JSON 结合起来学,从基础操作到实战案例,保证你看完就能上手。

一、先弄明白:Python 为啥总跟 JSON 搭伙?


咱们先聊聊这俩的关系。JSON 是数据格式,就像装数据的标准箱子;Python 是编程语言,能轻松打开和打包这个箱子。为啥它们总一起出现?因为 Python 里的字典和 JSON 格式特别像,转换起来几乎不用费劲,这对新手太友好了。
你可能会问:“我用 Python 的列表存数据不行吗?” 当然行,但列表存复杂数据容易乱。比如存用户信息,姓名、年龄、爱好这些,用 JSON 的键值对结构,一眼就能看清哪个是哪个,而且存成 JSON 文件,换个设备也能读,这就是它的好处。

二、入门前的准备,这些得先弄好


开始之前,咱们得把环境和工具准备好,很简单,两步就行:
  1. 安装 Python:去官网下载最新版,一路点 “下一步” 安装,记得勾选 “Add Python to PATH”,不然后面用不了命令。
  2. 认识 JSON 模块:Python 自带了 json 模块,不用额外安装,直接在代码里 import json 就能用,是不是很方便?

三、核心操作:用 Python 玩转正反 JSON


这部分是重点,咱们分 “把 Python 数据转成 JSON” 和 “把 JSON 转成 Python 数据” 来讲,一步一步来。

操作 1:Python 数据 → JSON 文件(序列化)


简单说就是把 Python 里的字典、列表存成 JSON 文件。步骤如下:
  • 准备好 Python 数据,比如一个字典:python
    user = {"name": "小李", "age": 20, "hobby": ["打球", "听歌"], "is_student": True}

  • 用 json.dump () 函数写入文件:python
    import json# 打开文件,'w'表示写入,encoding设为utf-8避免中文乱码with open("user.json", "w", encoding="utf-8") as f:json.dump(user, f, ensure_ascii=False, indent=2)

    这里 ensure_ascii=False 是让中文正常显示,indent=2 是让 JSON 格式更整齐,有缩进。运行后,文件夹里就会出现 user.json 文件啦。

操作 2:JSON 文件 → Python 数据(反序列化)


反过来,读取 JSON 文件里的数据到 Python 里。步骤也简单:
  • 用 json.load () 函数读取:python
    import jsonwith open("user.json", "r", encoding="utf-8") as f:data = json.load(f)  # 读出来就是Python字典# 试试取数据print("姓名:", data["name"])print("第一个爱好:", data["hobby"][0])

    运行后就能看到输出的姓名和爱好,是不是很神奇?

四、实战案例:爬取天气数据存成 JSON


光说不练假把式,咱们来个实战。比如爬取简单的天气数据,存成 JSON 方便查看。

案例步骤:


  1. 先安装 requests 库(用来发请求):在命令行输入pip install requests
  2. 写代码爬取并保存:

python
import requestsimport json# 简单的天气接口(示例接口,实际可用公开接口)url = "https://www.weather.com/api/data/2.5/weather?q=beijing&appid=123456"response = requests.get(url)weather_data = response.json()  # 直接把返回的JSON转成Python字典# 提取需要的信息useful_data = {"城市": weather_data["name"],"温度": weather_data["main"]["temp"],"天气状况": weather_data["weather"][0]["description"],"更新时间": weather_data["dt"]}# 存成JSON文件with open("beijing_weather.json", "w", encoding="utf-8") as f:json.dump(useful_data, f, ensure_ascii=False, indent=2)

  1. 运行后,打开 beijing_weather.json,就能看到整理好的天气数据了。

五、常见问题,新手踩坑指南


  1. 问:存 JSON 时中文显示成乱码?
    答:记得在 dump () 里加 ensure_ascii=False,同时文件编码设为 utf-8,这样中文就正常了。
  2. 问:JSON 里的键是字符串,Python 字典取键时能用单引号吗?
    答:可以的,Python 里字典键用单引号双引号都行,但 JSON 里的键必须是双引号,不过用 Python 转换时会自动处理,不用咱们操心。
  3. 问:遇到嵌套很多层的 JSON,怎么取深层数据?
    答:一层一层来,比如 data ["a"]["b"]["c"],要是怕报错,可以用 get () 方法,比如 data.get ("a", {}).get ("b", {}),这样就算某个键不存在也不会报错。

操作场景用什么函数注意事项
Python→JSON 文件json.dump()加 ensure_ascii=False
JSON 文件→Pythonjson.load()注意文件路径是否正确
Python→JSON 字符串json.dumps()转成字符串用于接口传输
JSON 字符串→Pythonjson.loads()处理接口返回的字符串

六、兔子哥的学习小建议


学 Python 结合 JSON,关键在多练。刚开始可以从简单的字典转 JSON 开始,熟悉后试试解析接口数据,遇到报错别慌,看看是不是格式错了,或者键名拼错了。记住,JSON 格式要求很严,少个逗号、多对引号都不行,耐心排查就行。
其实这俩搭配起来真的很简单,就像给数据找了个通用的 “快递盒”,Python 就是那个打包和拆包的工具。多写几个小案例,很快就能熟练啦,希望这篇教程能帮到你~

标签: 乱七八糟 从零开始

发布评论 0条评论)

  • Refresh code

还木有评论哦,快来抢沙发吧~