1

解決方法がわからないという問題があります。座標を地理位置情報アドレスに変換したいファイルを反復処理したい.コードは正常に動作しますが、ファイル内の特定の行数を反復処理した後、問題が発生します.

from __future__ import print_function
from geopy.geocoders import Nominatim
from shapely.wkt import loads as load_wkt
from shapely.geometry import Point, Polygon
import io
import re
import ast
import time

geolocator = Nominatim()

with io.open('sample_test2.txt', encoding="utf-8") as f, io.open('sample_test3.txt', 'w',encoding="utf-8") as g:
        for line in f:
                m = re.sub(r'(70[0-9]+,).*', r'\1', line.rstrip())
                z = re.sub(r'.*POINT \([0-9]+.[0-9]+ -[0-9]+.[0-9]+\)(.*)', r'\1', line.rstrip())
                c = re.sub(r'.*POINT \(([0-9]+.[0-9]+) (-[0-9]+.[0-9]+)\).*', r'"\1, \2"', line.rstrip())
                k = ast.literal_eval(c)
                location = geolocator.reverse(k, timeout=60)
                h = location.address
                j = re.sub(r'.*, ([^,]+, [^,]+), [0-9]+, United.*', r'\1', h.rstrip())
                print (m, j, z, file = g)
f.close()
g.close()

今、私は使用すべきいくつかの他の質問から読みましたtime.sleep(). 今、私はそれをの前に置きたいと思っていましたprint。コードを ( なしで ) 初めて実行したとき、time.sleep()このエラーが発生する前に変換したのは約 1800 行でした。

    raise GeocoderServiceError(message)
geopy.exc.GeocoderServiceError: HTTP Error 429: Too Many Requests

しかし、今では、の有無にかかわらずtime.sleep()、最初の行さえ実行せず、エラーで最初から壊れています。どうすればいいですか?

4

1 に答える 1

1

あなたが使用している Web サービスがあなたをブロックしているようです。おそらくあなたの IP アドレスが原因です。しばらく待ってから、スリープを挿入するなどして、サービスに「友好的」であることを確認してください。

于 2016-06-25T18:33:50.010 に答える