乐于分享
好东西不私藏

AI应用工程师-w0d1

AI应用工程师-w0d1

Python JSON 处理脚本

目标

不依赖AI辅助,独立写一个读取JSON文件、按条件过滤数据、格式化打印结果的Python脚本,建立基本的编程手感。

任务

具体内容
产出
实践
用open()读取JSON文件、json.load()解析、列表推导式过滤、f-string格式化输出
可运行的过滤脚本
独立编写,遇到报错再问AI

探索记录

json.load()vs json.loads()

# load:直接从文件对象读取data = json.load(f)# loads:先读成字符串,再从字符串解析content = f.read()          # content 是字符串data = json.loads(content)  # 从字符串解析

json.load()内部相当于 f.read()+ json.loads()两步合一。

JSON 数据类型与 Python 类型的对应

print(type(data))                 # → <class 'list'>print(type(data[0]))              # → <class 'dict'>  print(type(data[0]["name"]))      # → <class 'str'>print(type(data[0]["score"]))     # → <class 'int'>
JSON 类型
Python 类型
例子
字符串
str"小美"
数字
int
/ float
92
布尔值
booltrue
/ false
null
NoneTypenull
数组
list[1, 2, 3]
对象
dict{"k": "v"}

实践记录

import jsonDATA_FILE = "data.json"with open(DATA_FILE, "r", encoding="utf-8") as f:    data = json.load(f)    data_select = [i for i in data if i["score"] >= 80]for i in data_select:        print(f"{i['name']:<6}{i['score']:<6}{i['city']:<6}{i['hobby']:<6}")

使用数据:

[  {"name": "小美", "score": 92, "city": "北京", "hobby": "画画"},  {"name": "阿杰", "score": 78, "city": "上海", "hobby": "篮球"},  {"name": "大刘", "score": 55, "city": "广州", "hobby": "吉他"},  {"name": "小婷", "score": 88, "city": "北京", "hobby": "摄影"},  {"name": "阿强", "score": 63, "city": "深圳", "hobby": "游泳"},  {"name": "小玲", "score": 95, "city": "上海", "hobby": "画画"},  {"name": "大伟", "score": 71, "city": "北京", "hobby": "篮球"},  {"name": "小华", "score": 45, "city": "广州", "hobby": "游戏"}]

关键理解

  • open()的with语句:确保文件自动关闭,避免资源泄漏
  • json.load() vs json.loads():load从文件读,loads从字符串读
  • 列表推导式的结构:[expression for item in iterable if condition]
  • f-string格式化:
    • f"{变量名:.2f}"— 控制小数位(2位)
    • f"{变量名:<10}"— 左对齐(冒号在左=靠左)
    • f"{变量名:>10}"— 右对齐(冒号在右=靠右)
    • f"{变量名:^10}"— 居中对齐(冒号在两边=居中)
    • f"{变量名:>10.2f}"— 组合:宽度10 + 右对齐 + 2位小数
  • 报错训练:TypeError(类型不匹配)、KeyError(键不存在)、FileNotFoundError(路径错误)

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料