代码之家  ›  专栏  ›  技术社区  ›  Avi

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

  •  0
  • Avi  · 技术社区  · 5 年前

    我正在尝试访问一个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]
    
    2 回复  |  直到 5 年前
        1
  •  1
  •   Ghassen    5 年前

    您正在使用无效的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/

        2
  •  0
  •   Almog    5 年前

    这不是个错误。
    在我看来你好像丢失了你的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\/"}}