【问题标题】:Readtimeout error for API data with Sodapy client使用 Sodapy 客户端读取 API 数据的超时错误
【发布时间】:2017-11-27 15:21:55
【问题描述】:

我正在尝试使用 SodaPy 库 (https://github.com/xmunoz/sodapy) 在线 (hhttps://data.consumerfinance.gov/dataset/Consumer-Complaints/s6ew-h6mp) 对消费者投诉数据集进行 API 调用。我只想获取csv数据,网页说有906182行,

我已尽我所能遵循 GitHub 上的示例,但它只是不起作用。代码如下:

from sodapy import Socrata

client = Socrata("data.consumerfinance.gov", "apptoken", username="myusername", password="mypassword")

results = client.get("s6ew-h6mp")

我想获取整个数据集,但我不断收到以下错误:

ReadTimeout: HTTPSConnectionPool(host='data.consumerfinance.gov', port=443): Read timed out. (read timeout=10)

关于如何解决这个问题的任何线索?

【问题讨论】:

    标签: python timeout


    【解决方案1】:

    默认情况下,Socrata 连接会在 10 秒后超时。

    您可以通过更新“超时”实例变量来增加 Socrata 客户端的超时限制,如下所示:

    from sodapy import Socrata
    
    client = Socrata("data.consumerfinance.gov", "apptoken", username="myusername", password="mypassword")
    
    # change the timeout variable to an arbitrarily large number of seconds
    client.timeout = 50
    
    results = client.get("s6ew-h6mp")
    

    【讨论】:

      【解决方案2】:

      查看source code on GitHub,Socrata 的构造函数有一个超时参数。以下代码示例会将超时时间从 10 秒增加到 25 秒:

      from sodapy import Socrata
      client = Socrata("data.consumerfinance.gov", "apptoken", timeout=25)
      results = client.get("s6ew-h6mp")
      

      【讨论】:

        【解决方案3】:

        连接超时可能是因为文件太大。您可以尝试使用 limit 选项下载数据子集,例如

        results = client.get("s6ew-h6mp", limit=1000)

        您还可以使用SoQL keywords 查询数据的子集。

        否则,sodapy 模块是基于 requests 模块构建的,因此查看文档可能会很有用。

        【讨论】:

        • 谢谢,但我需要完整的数据集
        • 另外,就我而言,我已经用 WHERE kwarg 限制查询,所以我不能使用 LIMIT kwarg。一定有办法增加“读取超时”??
        【解决方案4】:

        我认为这实际上可以解决问题:确保您从 API 端点请求数据。 4x4 ID 略有不同(查看数据集here 时,单击导出,然后单击 SODA API)。试试:

        results = client.get("jhzv-w97w")
        

        【讨论】:

        • 所以 s6ew-h6mp 不是端点?两者有什么区别?
        • 它们都是有效的端点,但它们的用途略有不同。不久前我和 Socrata 谈过这件事,但我不记得他们的理由是什么……抱歉,我无法进一步澄清。成功了吗?
        猜你喜欢
        • 2016-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-12
        • 2016-05-13
        • 1970-01-01
        • 2016-10-24
        相关资源
        最近更新 更多