import math, datetime, json, os
print(math.sqrt(16))
print(datetime.datetime.now())
data = {'a': 1, 'b': 2}
print(json.dumps(data))
print(os.getcwd())
help(math.sqrt)
help(os.listdir)
import requests
# GET请求
r = requests.get('https://api.github.com')
print(r.status_code, r.json())
# POST请求
r = requests.post('https://httpbin.org/post', data={'key': 'value'})
print(r.json())
# 传递headers和认证
token = 'your_token'
headers = {'Authorization': f'Bearer {token}'}
r = requests.get('https://api.example.com/data', headers=headers)
# 处理超时和异常
try:
r = requests.get('https://api.github.com', timeout=3)
r.raise_for_status()
except requests.RequestException as e:
print('请求失败:', e)
import requests, json
r = requests.get('https://api.github.com')
data = r.json()
from pprint import pprint
pprint(data)
import logging
logging.basicConfig(level=logging.INFO)
logging.info('API请求结果: %s', data)
def add(a: int, b: int) -> int:
"""返回a和b的和"""
return a + b
print(add(3, 5))
# RESTful接口设计(伪代码)
# URL: /api/v1/add, Method: POST, Body: {"a": 1, "b": 2}
def test_add():
assert add(2, 3) == 5
assert add(-1, 1) == 0
print('测试通过')
print(add.__doc__)
# 以和风天气API为例(需注册Key)
import requests
url = 'https://devapi.qweather.com/v7/weather/now?location=101010100&key=你的key'
r = requests.get(url)
if r.status_code == 200:
print(r.json())
else:
print('获取失败')
# 百度翻译API(伪代码)
import requests
url = 'https://fanyi.baidu.com/api/trans/vip/translate'
params = {'q': 'hello', 'from': 'en', 'to': 'zh', 'appid': '你的appid', 'salt': '随机数', 'sign': '签名'}
r = requests.get(url, params=params)
print(r.json())
# 用requests+os下载文件
def download_file(url: str, filename: str):
import requests, os
r = requests.get(url)
with open(filename, 'wb') as f:
f.write(r.content)
print(f'已保存到{os.path.abspath(filename)}')
download_file('https://www.example.com/logo.png', 'logo.png')
# 爬取新闻API
url = 'https://api.example.com/news'
r = requests.get(url)
if r.ok:
for item in r.json()['data']:
print(item['title'])
import time
for i in range(3):
try:
r = requests.get('https://api.github.com/unknown', timeout=2)
r.raise_for_status()
break
except requests.RequestException as e:
print('请求失败:', e)
time.sleep(1)
实现一个程序,定时采集某个公开API的数据(如天气、新闻、汇率),并进行简单分析和可视化。
设计一个自定义API(如学生信息管理),写好文档字符串,支持增删查改,并编写调用示例和单元测试。
实现一个小型应用,集成多个API(如天气+翻译+定时提醒),提升综合能力。
用Postman/curl等工具调试和测试你实现的API。