2016-01-30 23 views
0

使用我從以下鏈接獲得代碼: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 

任何幫助,因爲我很卡和新的所有這一切謝謝,非常感謝!

回答

1

你是字面上發送查詢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