输入获得变量的立交桥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)
感谢您的帮助,我认为这是有效的,因为没有错误了,但是没有任何内容出于某种原因。你认为这是一个单独的问题,或者你知道为什么会发生这种情况。再次感谢您的帮助,我真的很感激! – RyanKilkelly
@RyanKilkelly代码(和教程)的最后一行是'len(result.nodes)',它在Python解释器(在命令行中)中工作并输出一些数字。当通过'python script.py'(或者以其他方式)运行这段代码时,你必须象我在代码中那样添加'print',否则它不会显示任何东西。 – chrki
我的打印内容与您的代码一样,但仍未打印,不知道问题可能出在哪里,但我会继续尝试,谢谢! – RyanKilkelly