在Python中分块SQL语句

时间:2015-10-12 00:21:51

标签: python postgresql itertools cartodb

我正在努力尝试将现有的PostGIS代码与CartoDB一起使用。 I have created a Python script接收数据,将其分块并POST到CartoDB,但是安装文件包含不会很好的多行创建语句。所以我发现自己提交了非常大的块。

The set of queries我试图通过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)

0 个答案:

没有答案