簡體   English   中英

將獲得的變量輸入python中的Overpass API調用

[英]Input obtained variables to an Overpass API call in python

使用我從以下鏈接獲得的代碼: http : //python-overpy.readthedocs.org/en/latest/example.html我想輸入已經獲得的變量,而不是直接輸入它們,例如:

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

min_lat等變量的類型為float。 這是我得到的錯誤:

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; 到Overpass API, 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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM