python - 413“请求实体太大”使用 Python 和 postcodes.io API
问题描述
我有大量的邮政编码,我想使用“postCodes.io”API,它在 python 中为给定的 postCode 提供经度和高度数据。
当我只请求 3-4 个邮政编码时,它不会给出错误,但是当我想要大量数据时,它会给出“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()
文件 = 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},SG6 3BA,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
解决方案
这是因为您要从整个列表中发送一个庞大的请求。相反,您可以发送多个较小的请求,每个请求带有几个邮政编码,并将每个请求的输出附加到列表中。
HTTP 错误 413“请求实体太大”不是由速率限制引起的,而是由单个请求的大小引起的。您可以尝试向许多服务器发送大量 GET 或 POST 请求并获得相同的错误消息。
尝试一次只查询 3-4 个邮政编码(或找到最大限制并每次请求该数字)。
推荐阅读
- web-services - 尝试定位 WSL 时出现 JBoss EAP 7.3 错误
- javascript - 如何在 Chrome 中捕获静音 NS_ERROR_OUT_OF_MEMORY
- django - 有没有办法在 django generic ListView 中执行 django admin 之类的列表过滤?
- function - 如何用 Matlab 向量化阶跃函数
- python - 错误- encrypt() .... 位置参数:`data`
- amazon-web-services - SageMaker Estimator use_spot_instances 导致 Invalid MaxWaitTimeInSeconds
- google-apps-script - Google Workspace,SpreadsheetApp.getUi().showSidebar 导致“TransportError”,错误代码 = 10,路径 = /wardeninit 和 google.script.run 将失败
- r - 使用雄蕊图时 Shiny 出错 - “找不到对象”
- html - 如何删除此大纲?
- javascript - 下一个 js 404 页面在 tsx 扩展中不起作用