数码工坊
白蓝主题五 · 清爽阅读
首页  > 数据备份

用HTTP请求JSON实现轻量级数据备份

现在很多应用的数据都存在服务器上,比如待办清单、笔记、用户设置。想把这些数据定期存一份本地,其实不需要复杂的工具,一个简单的HTTP请求加上JSON处理就能搞定。

从哪里开始?

假设你有个小项目,每天记录几条心情日记,后端只提供一个API接口,返回格式是JSON。你想每周自动把数据拉下来存到电脑里,防止哪天服务停了数据丢了。

这时候你只需要写个脚本,定时发起HTTP GET请求,拿到响应体里的JSON数据,保存成文件就行。

怎么发请求?

用Python的话,requests库最方便。比如你的接口地址是 https://api.example.com/diary,带个token认证:

import requests

url = "https://api.example.com/diary"
headers = {
    "Authorization": "Bearer your-token-here"
}

response = requests.get(url, headers=headers)
if response.status_code == 200:
    data = response.json()
    with open("diary_backup.json", "w", encoding="utf-8") as f:
        json.dump(data, f, ensure_ascii=False, indent=2)
    print("备份完成!")
else:
    print(f"请求失败,状态码:{response.status_code}")

这段代码跑一次,就会在当前目录生成一个diary_backup.json文件,里面是你所有的日记数据。

自动化更省心

把脚本保存好以后,可以用系统的计划任务让它自动运行。Windows用“任务计划程序”,macOS或Linux用cron。比如每天凌晨2点执行一次:

0 2 * * * /usr/bin/python3 /path/to/your/backup_script.py

只要网络通,服务没挂,你的数据就一直在本地有副本。

不只是备份,还能迁移

有次我换了个新的记账App,旧的只支持导出JSON,新的支持API导入。我就写了个小脚本,读取本地的JSON文件,遍历每一条记录,用HTTP POST请求一条条推过去。

核心代码差不多这样:

with open("old_data.json", "r", encoding="utf-8") as f:
    records = json.load(f)

for record in records:
    requests.post("https://new-api.com/records", json=record, headers=headers)
    time.sleep(0.5)  # 别发太快,避免被限流

半小时不到,几百条数据全迁过去了,比手动一条条输强太多了。

其实很多所谓的“专业备份工具”,底层干的也就是这些事。搞清楚HTTP请求和JSON的配合,你自己就能搭一套轻量又可控的备份流程。