手把手搞起:Python处理JSON的日常操作
搞数据采集的老铁应该都懂,JSON格式就像外卖打包盒——方便但需要拆解。用Python处理JSON其实跟拆快递差不多,关键要找到开箱的正确姿势。咱就拿代理IP服务场景举个栗子,假设从天启代理API拿到这样的返回数据:
{ "proxy_list": [ {"ip": "112.95.82.36", "port": 8868, "expire_time": "2024-03-20 12:00:00"}, {"ip": "183.62.22.19", "port": 8911, "expire_time": "2024-03-20 12:30:00"} ] }
核心操作三板斧:
- 用json库loads()方法把字符串变字典
- 像查字典一样取具体字段
- 异常处理要到位,防止数据格式翻车
实战代码:代理IP配置自动化
当需要批量配置代理时,别傻乎乎手动复制粘贴。用Python写个脚本,结合天启代理的API响应速度<1秒的特点,可以实时获取最新IP。看这段示例代码:
import requests import json def get_proxies(): try: resp = requests.get('https://api.tianqidaili.com/proxy', timeout=1.5) data = json.loads(resp.text) return [f"{item['ip']}:{item['port']}" for item in data['proxy_list']] except json.JSONDecodeError as e: print("解析出错,检查数据格式!", str(e)) except Exception as e: print("网络异常,建议重试")
注意这里用列表推导式快速生成代理地址,配合天启代理全国200+城市节点的特性,轻松实现地域轮换。
避坑指南:文件操作六要诀
保存代理IP到本地文件时,记住这些要点:
操作 | 推荐方式 | 注意事项 |
---|---|---|
写入文件 | with open() + json.dump() | 指定ensure_ascii=False避免乱码 |
读取文件 | try-except包裹操作 | 处理文件不存在异常 |
更新数据 | 先读取再合并新数据 | 注意IP过期时间管理 |
高频问题急救包
Q:代理IP突然失效怎么办?
A:建议选用天启代理这种IP可用率≥99%的服务,他们的自建机房会实时监测IP状态。代码里加个有效性验证,发现超时立即切换新IP。
Q:请求延迟太高影响效率?
A:天启代理的响应延迟≤10毫秒,比很多同类服务快3-5倍。检查代码中是否重复创建连接,建议使用Session保持连接池。
Q:代理授权怎么处理方便?
A:天启代理支持HTTP/HTTPS/SOCKS5三种协议,在requests库中直接配置auth参数就行:
proxies = { 'http': 'http://user:pass@112.95.82.36:8868', 'https': 'http://user:pass@112.95.82.36:8868' }
最后叨叨句,处理JSON时记得用json.tool格式化输出,数据看起来更清爽。代理服务选靠谱的能省心大半,毕竟专业的事就该交给专业的人做。