Python:使用 osmapi 执行查询时列表索引超出范围
Python: List index out of range when performing a query using osmapi
嗨,我也是 osmapi
和 python 的新手。我正在编写一个脚本来使用 osmapi
执行一些查询,直到出现此错误并且数据似乎适用于此 link https://www.openstreetmap.org/way/77517260, and same for the xml response https://api.openstreetmap.org/api/0.6/way/77517260.
当我测试另一种方式 ID 时它可以工作,但这个 ID 77517260
没有,这里是以下错误:
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
~/.pyenv/versions/3.6.4/lib/python3.6/site-packages/osmapi/OsmApi.py in _OsmResponseToDom(self, response, tag, single)
2060 all_data = osm_dom.getElementsByTagName(tag)
-> 2061 first_element = all_data[0]
2062 except (xml.parsers.expat.ExpatError, IndexError) as e:
IndexError: list index out of range
During handling of the above exception, another exception occurred:
XmlResponseInvalidError Traceback (most recent call last)
<ipython-input-20-79d93245d84a> in <module>
----> 1 way = api.NodeWays(77517260)
~/.pyenv/versions/3.6.4/lib/python3.6/site-packages/osmapi/OsmApi.py in NodeWays(self, NodeId)
513 uri = "/api/0.6/node/%d/ways" % NodeId
514 data = self._get(uri)
--> 515 ways = self._OsmResponseToDom(data, tag="way")
516 result = []
517 for way in ways:
~/.pyenv/versions/3.6.4/lib/python3.6/site-packages/osmapi/OsmApi.py in _OsmResponseToDom(self, response, tag, single)
2062 except (xml.parsers.expat.ExpatError, IndexError) as e:
2063 raise XmlResponseInvalidError(
-> 2064 "The XML response from the OSM API is invalid: %r" % e
2065 )
2066
XmlResponseInvalidError: The XML response from the OSM API is invalid: IndexError('list index out of range',)
我的python代码:
import osmapi as osm
api = osm.OsmApi()
way = api.NodeWays(77517260)
首先 - 您应该在构造函数中传递 url 和凭据:
api = osm.OsmApi(api="https://api.openstreetmap.org", username="username", password="secret")
下一个-api/0.6/way/{id}
- 也许您正在寻找WayGet
方法。
代码:
import osmapi as osm
api = osm.OsmApi(api="https://api.openstreetmap.org", username="username", password="secret")
way = api.WayGet(77517260)
嗨,我也是 osmapi
和 python 的新手。我正在编写一个脚本来使用 osmapi
执行一些查询,直到出现此错误并且数据似乎适用于此 link https://www.openstreetmap.org/way/77517260, and same for the xml response https://api.openstreetmap.org/api/0.6/way/77517260.
当我测试另一种方式 ID 时它可以工作,但这个 ID 77517260
没有,这里是以下错误:
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
~/.pyenv/versions/3.6.4/lib/python3.6/site-packages/osmapi/OsmApi.py in _OsmResponseToDom(self, response, tag, single)
2060 all_data = osm_dom.getElementsByTagName(tag)
-> 2061 first_element = all_data[0]
2062 except (xml.parsers.expat.ExpatError, IndexError) as e:
IndexError: list index out of range
During handling of the above exception, another exception occurred:
XmlResponseInvalidError Traceback (most recent call last)
<ipython-input-20-79d93245d84a> in <module>
----> 1 way = api.NodeWays(77517260)
~/.pyenv/versions/3.6.4/lib/python3.6/site-packages/osmapi/OsmApi.py in NodeWays(self, NodeId)
513 uri = "/api/0.6/node/%d/ways" % NodeId
514 data = self._get(uri)
--> 515 ways = self._OsmResponseToDom(data, tag="way")
516 result = []
517 for way in ways:
~/.pyenv/versions/3.6.4/lib/python3.6/site-packages/osmapi/OsmApi.py in _OsmResponseToDom(self, response, tag, single)
2062 except (xml.parsers.expat.ExpatError, IndexError) as e:
2063 raise XmlResponseInvalidError(
-> 2064 "The XML response from the OSM API is invalid: %r" % e
2065 )
2066
XmlResponseInvalidError: The XML response from the OSM API is invalid: IndexError('list index out of range',)
我的python代码:
import osmapi as osm
api = osm.OsmApi()
way = api.NodeWays(77517260)
首先 - 您应该在构造函数中传递 url 和凭据:
api = osm.OsmApi(api="https://api.openstreetmap.org", username="username", password="secret")
下一个-api/0.6/way/{id}
- 也许您正在寻找WayGet
方法。
代码:
import osmapi as osm
api = osm.OsmApi(api="https://api.openstreetmap.org", username="username", password="secret")
way = api.WayGet(77517260)