Python中的SQL语句分块

2024-05-12 22:47:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在努力将现有的PostGIS代码用于CartoDB。I have created a Python script接收数据,将其分块,然后发布到CartoDB,但是安装文件包含多行create语句,这些语句不能很好地分块。所以我发现自己提交了大量的文件。你知道吗

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)

Tags: urlifbuffermatchlineitparams语句