1

我正在尝试将现有的 PostGIS 代码与 CartoDB 一起使用。我创建了一个 Python 脚本来接收数据、对其进行分块并 POST 到 CartoDB ,但设置文件包含不能很好地分块的多行创建语句。所以我发现自己提交了非常大的块。

我试图通过 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