输入获得变量的立交桥API调用蟒蛇

输入获得变量的立交桥API调用蟒蛇

问题描述:

使用我从以下链接获得代码:http://python-overpy.readthedocs.org/en/latest/example.html我想,我已经获得的,而不是直接输入他们,而不是输入变量,如如下:输入获得变量的立交桥API调用蟒蛇

import overpy 
api = overpy.Overpass() 
result = api.query("node(min_lat,min_lon,max_lat,max_lon);out;") 
len(result.nodes) 

变量min_lat等是浮点类型。这是我得到的错误:

overpy.exception.OverpassBadRequest: Error: line 1: parse error: Unknown query clause 
Error: line 1: parse error: ')' expected - 'min_lat' found. 
Error: line 1: parse error: An empty query is not allowed 
Error: line 1: parse error: Unknown type ";" 
Error: line 1: parse error: An empty query is not allowed 

任何帮助,因为我很卡和新的所有这一切谢谢,非常感谢!

你是字面上发送查询node(min_lat,min_lon,max_lat,max_lon);out;到立交桥,min_lat等没有改变。

为了填补这个变量,你可以使用字符串替换:

"node(%s, %s, %s, %s);out;" % (min_lat, min_lon, max_lat, max_lon) 

%s将被替换为您在括号中提供的变量。

import overpy 
api = overpy.Overpass() 

min_lat = 50.745 
min_lon = 7.17 
max_lat = 50.75 
max_lon = 7.18 

query = "node(%s, %s, %s, %s);out;" % (min_lat, min_lon, max_lat, max_lon) 
result = api.query(query) 

print query 
print len(result.nodes) 
+0

感谢您的帮助,我认为这是有效的,因为没有错误了,但是没有任何内容出于某种原因。你认为这是一个单独的问题,或者你知道为什么会发生这种情况。再次感谢您的帮助,我真的很感激! – RyanKilkelly

+0

@RyanKilkelly代码(和教程)的最后一行是'len(result.nodes)',它在Python解释器(在命令行中)中工作并输出一些数字。当通过'python script.py'(或者以其他方式)运行这段代码时,你必须象我在代码中那样添加'print',否则它不会显示任何东西。 – chrki

+0

我的打印内容与您的代码一样,但仍未打印,不知道问题可能出在哪里,但我会继续尝试,谢谢! – RyanKilkelly