Py学习  »  Python

通过请求访问api,但在python中出现错误

Avi • 4 年前 • 285 次点击  

我正在尝试访问一个api,据说它是用html提供的。我仔细研究了这些答案

( Get html using Python requests? )但我没有得到我的结果。我只是想确保我做的是正确的,因为我得到这样的错误(“' {"request":{"category_id":"717234","command":"category"},"data":{"error":"invalid or missing api_key'" 这个api不工作吗?有什么方法可以获取html数据并将其转换为csv或excel吗? 这是我正在使用的代码。

import requests
URL = "https://api.eia.gov/category?api_key=YOUR_API_KEY_HERE&category_id=717234"
r = requests.get(url = URL)
r.text[:100]
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/47100
 
285 次点击  
文章 [ 2 ]  |  最新文章 4 年前
Almog
Reply   •   1 楼
Almog    4 年前

这不是个错误。
在我看来你好像丢失了你的api密钥。

这是你在链接中写的:

{"request":{"category_id":"717234","command":"category"},"data":{"error":"invalid or missing api_key. For key registration, documentation, and examples see https:\/\/www.eia.gov\/developer\/"}}
Ghassen
Reply   •   2 楼
Ghassen    4 年前

您正在使用无效的API指向HTML页的链接不起作用:

import requests
URL = "https://api.eia.gov/category?api_key=YOUR_API_KEY_HERE&category_id=717234"
headers = {'Accept-Encoding': 'identity'}
r = requests.get(URL, headers=headers)
print(r.text[:100])

输出:

{"request":{"category_id":"717234","command":"category"},"data":{"error":"invalid or missing api_key

我试着把链接的链接改成你在答案中给出的链接,我得到一个结果:

import requests
URL = "http://www.wrcc.dri.edu/WRCCWrappers.py?sodxtrmts+028815+por+por+pcpn+none+mave+5+01+F"
headers = {'Accept-Encoding': 'identity'}
r = requests.get(URL, headers=headers)
print(r.text[:100])

输出:

<!DOCTYPE html>
<HTML>
<HEAD><TITLE>Average of Precipitation, Station id: 028815</TITLE></HEAD>
<BO

作为解决方案,您可以使用外部api该api的devoloper模式: https://www.eia.gov//developer// 或者检查此链接以获取密钥: https://www.eia.gov/opendata/