原来API请求就是一个Python字典——40岁学AI的第15天
90天AI学习挑战 · Day15 和包哥一起学AI
📌 昨天
Day14学会了终端操作,pip install requests一次成功,成就感还在延续。
但问题来了——学了Python、装了库,到底怎么调AI?
今天终于揭晓答案了。
📖 今天学了什么
1️⃣ JSON——API的"通用语言"
先说结论:JSON和你Day12学的Python字典几乎一模一样。
{
"model": "deepseek-chat",
"messages": [
{"role": "user", "content": "你是谁?"}
],
"temperature": 0.7
}
这就是一个API请求体——大括号包着键值对,数组套着字典。跟Python的dict+list完全是一个套路。
我试了一下JSON和Python互转:
import json
# Python字典 → JSON
data = {"name": "包哥", "day": 15}
json_str = json.dumps(data, ensure_ascii=False)
# JSON → Python字典
parsed = json.loads(json_str)
print(parsed["name"]) # 包哥
就4行代码,把Python字典变成JSON字符串,再变回来。
之前看到API文档里密密麻麻的JSON,觉得好复杂。现在发现:就是字典套列表、列表套字典,一点新东西都没有。
2️⃣ HTTP请求——API怎么通信(餐厅类比)
| | |
|---|
| URL | | https://api.deepseek.com/ |
| Method | | |
| Headers | | Authorization: Bearer 你的Key |
| Body | | |
| Status Code | | |
用餐厅来类比再清楚不过了:
- URL = 餐厅在哪里 →
https://api.deepseek.com/chat/completions - Headers = 进门出示身份证 →
Authorization: Bearer sk-xxx - Body = 你要点什么菜 →
{"messages": [{"role": "user", "content": "你好"}]} - Status Code = 服务员告诉你结果 → 200=菜来了,401=你没会员卡
3️⃣ 一个完整API请求长这样
POST https://api.deepseek.com/chat/completions
Headers:
Authorization: Bearer sk-你的Key
Content-Type: application/json
Body:
{
"model": "deepseek-chat",
"messages": [{"role": "user", "content": "你好"}]
}
→ 返回:
{
"choices": [{
"message": {"content": "你好!有什么可以帮你的?"}
}]
}
你发一条JSON过去,它回一条JSON回来。 就这么简单。
💡 今天的发现
学AI半个月了,最大的感受是:
你以为难的东西,拆开来看全是学过的。
JSON = 字典+列表(Day12学的) API请求 = 发JSON收JSON(今天学的) 服务器返回 = 解析JSON取字段(明天学)
每一步都在用之前学的东西,没有突然冒出来的新概念。
📖 今日金句
API就是一个"发JSON收JSON"的过程。懂了JSON,就懂了API的一半。
📊 90天挑战进度
基础课1:技术入门
Day11:Markdown ⬜
Day12:Python基础(上) ✅ 变量·列表·字典·字符串
Day13:Python控制流 ✅ if判断·for循环·while循环
Day14:终端与脚本 ✅ cd·dir·pip·运行脚本
Day15:JSON与API初识 ✅ 今日完成
Day16:第一次调API ⬜ 明天实操!
和包哥一起学AI · Day1540岁学AI,不会太晚