我正在尝试将现有的 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)