1

CartoDB で既存の PostGIS コードを使用しようと取り組んでいます。データを取り込んでチャンクし、 CartoDB に POSTする Python スクリプトを作成しましたが、セットアップ ファイルにはうまくチャンクできない複数行の create ステートメントが含まれています。そのため、非常に大きなチャンクを送信していることに気づきました。

POST 経由で URL に送信しようとしているクエリのセットは約 9000 バイトで、その後 414 (大きすぎます) エラーが発生します。

チャンクを完全なステートメントに制約する方法を知っている人はいますか (たとえば、; で終了します)?

def grouper(iterable, n):
    it = iter(iterable)
    while True:
       chunk = tuple(islice(it, n))
       if not chunk:
           return
       yield chunk

buffer = []

#pattern to match blank or comment lines
pattern = re.compile("^\s*\-\-.*$|\s+$")

for line in fileinput.input():
    #drop blank or comment lines.
    if pattern.match(line):
        pass
    else:
        buffer.append(line.strip())

for group in grouper(buffer,500):
    query = "".join(group)

    params = {
        'api_key' : config['apikey'],
        'q'       : query
    }
    r = requests.post(API_URL, params=params)
4

0 に答える 0