413使用Python和postcodes.io API的“请求实体太大”

我有大量的邮政编码,我想使用“ postCodes.io” API,该API在python中提供给定postCode的经度和海拔数据。

当我只请求3-4个PostCodes时,它不会给出错误,但是当我想要大量数据时,它会给出“ 413错误”。我应该如何使用python等待所需的时间,然后重试使用API​​?

或者是否可以更改此请求限制(如果我在本地计算机上下载API并与docker一起运行)? https://postcodes.io/docs#Install-notes

这是我的代码:

import requests
import json
import pandas as pd

file = 'DataSets/deneme.csv'
df = pd.read_csv(file)

postCodeArray = []

for postCode in df['PostCode']:
    postCodeArray.append(postCode)

parameters = {
    "postcodes": json.dumps(postCodeArray)   #should be used.["OX49 5NU","M32 0JG","NE30 1DP"]
}

response = requests.post("https://api.postcodes.io/postcodes",data=parameters)
data = response.json()

file = deneme.csv看起来像这样:

Transaction Unique Identifier,PostCode,Town/City
{8A78B2B0-5D07-5CB0-E053-6B04A8C0F504},SG5 1RT,HITCHIN
{8A78B2B0-5D09-5CB0-E053-6B04A8C0F504},AL3 4GD,ST ALBANS
{8A78B2B0-5D0A-5CB0-E053-6B04A8C0F504},WD25 0NF,WATFORD
{8A78B2B0-5D0C-5CB0-E053-6B04A8C0F504},WD7 7NN,RADLETT
{8A78B2B0-5D0D-5CB0-E053-6B04A8C0F504},SG6 4LU,LETCHWORTH GARDEN CITY
{8A78B2B0-5D0E-5CB0-E053-6B04A8C0F504},SG9 9JH,BUNTINGFORD
{8A78B2B0-5D11-5CB0-E053-6B04A8C0F504},WD7 7JA,RADLETT
{8A78B2B0-5D12-5CB0-E053-6B04A8C0F504},SG12 9DZ,WARE
{8A78B2B0-5D17-5CB0-E053-6B04A8C0F504},SG6 3BA,LETCHWORTH GARDEN CITY
{8A78B2B0-5D18-5CB0-E053-6B04A8C0F504},LETCHWORTH GARDEN CITY
{8A78B2B0-5D1B-5CB0-E053-6B04A8C0F504},WD17 4UH,WATFORD
{8A78B2B0-5D1C-5CB0-E053-6B04A8C0F504},HP2 7QF,HEMEL HEMPSTEAD
{8A78B2B0-5D2E-5CB0-E053-6B04A8C0F504},HP2 4BA,HEMEL HEMPSTEAD
zpr6j 回答:413使用Python和postcodes.io API的“请求实体太大”

这是因为您要从整个列表中发送一个庞大的请求。相反,您可以发送多个较小的请求,每个请求带有几个邮政编码,然后将每个请求的输出附加到列表中。

HTTP错误413“请求实体太大”不是由速率限制引起的,而是由单个请求的大小引起的。您可以尝试将大量的GET或POST请求发送到许多服务器,并获得相同的错误消息。

尝试一次仅查询3-4个邮政编码(或找到最大限制并每次请求该编号)。

,

嘿,每个使用API​​的人都给了我结果。正如@john doe所说,我试图找到我一次可以请求的postCode的最大数量。 每个请求100个。但是,拥有4 GB数据并不能轻松地计算所有数据。所以我找到了英国的PostCode Zip文件,问题就解决了。

我还发现了如何限制您的请求:使用另一个名为ratelimit的api

本文链接:https://www.f2er.com/3115668.html

大家都在问