import requests
def fetch_data_from_api(url):
response = requests.get(url)
if response.status_code == 200:
data = response.json()
return data
else:
print("Failed to fetch data from API")
return None
# 使用NASA的API获取每日天文图片
url = "https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY"
data = fetch_data_from_api(url)
if data:
# 解析返回的JSON数据
image_url = data["url"]
explanation = data["explanation"]
# 下载图片
response = requests.get(image_url)
if response.status_code == 200:
with open("astronomy_image.jpg", "wb") as f:
f.write(response.content)
print("Astronomy image downloaded successfully")
else:
print("Failed to download astronomy image")
else:
print("Failed to fetch data from API")
这个案例中的URL为https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY
,使用了NASA的API来获取每日天文图片。在代码中,我们定义了一个fetch_data_from_api
函数,用于发送GET请求并获取数据。然后,我们通过调用这个函数来获取API返回的JSON数据。
接着,我们从返回的JSON数据中解析出图片的URL和解释文字,然后再次使用requests
库发送GET请求来下载图片。如果下载成功,就将图片保存为astronomy_image.jpg
文件。
需要注意的是,这里使用了requests
库来发送HTTP请求和处理响应。在运行这个代码之前,请确保已经安装了requests
库(可以通过pip install requests
命令进行安装)。
执行这段代码后,运行结果会有以下几种情况:
如果成功从API获取数据并下载了图片,则会打印出成功的提示信息。
如果失败从API获取数据,则会打印出相应的错误信息。
如果下载图片失败,则会打印出相应的错误信息。
这个案例展示了如何使用URL来调用API,并通过HTTP请求获取数据或下载资源。