![]() |
IndexError: pop from empty stack - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: IndexError: pop from empty stack (/thread-5515.html) |
IndexError: pop from empty stack - prateek - Oct-08-2017 Hi, I am trying to audit the open street map data which is a XML file. In this i am trying to find the street name which are not in the correct format. But when i am running i am getting the "IndexError: pop from empty stack". Please help me the find where i am wrong. Please find below the code and the error. Code : import xml.etree.cElementTree as ET from collections import defaultdict import re import pprint regex = re.compile(r'\b\S+\.?', re.IGNORECASE) expected = ["Ahmedabad", "Road", "NR", "Avenue", "SBK", "Gandhi", "Bridge", "Society"] #expected names in the dataset # Search string for the regex. If it is matched and not in the expected list then add this as a key to the set. def audit_street(street_types, street_name): m = regex.search(street_name) if m: street_type = m.group() if street_type not in expected: street_types[street_type].add(street_name) def is_street_name(elem): # Check if it is a street name return (elem.attrib['k'] == "addr:street") def main(): # return the list that satify the above two functions osm_file = open("D:/Udacity/ud120-projects-master/new-delhi_india.osm", "r") street_types = defaultdict(set) for event, elem in ET.iterparse(osm_file, events=("start",)): if elem.tag == "node" or elem.tag == "way": for tag in elem.iter("tag"): if is_street_name(tag): audit_street(street_types, tag.attrib['v']) osm_file.close() print street_types if __name__== "__main__": main() Error: Traceback (most recent call last): File "C:\Users\prateek\Desktop\xx.py", line 39, in <module> main() File "C:\Users\prateek\Desktop\xx.py", line 27, in main for event, elem in ET.iterparse(osm_file, events=("start",)): File "<string>", line 103, in next IndexError: pop from empty stack |