Nov-21-2018, 03:28 AM
Hello I started my trek into Python a few days ago.
I am receiving the following error:
I am currently working on the Python for Everybody specialization. I thought that my source code was fine, here it is
I am receiving the following error:
Quote:Please enter an XML URL to parse: http://py4e-data.dr-chuck.net/comments_42.xml
Traceback (most recent call last):
File "/home/lamidotijjo/Documents/PythonProjects/parsexml.py", line 46, in <module>
tree = ET.parse(url_to_open)
File "/usr/lib/python3.6/xml/etree/ElementTree.py", line 1196, in parse
tree.parse(source, parser)
File "/usr/lib/python3.6/xml/etree/ElementTree.py", line 586, in parse
source = open(source, "rb")
OSError: [Errno 36] File name too long
I am currently working on the Python for Everybody specialization. I thought that my source code was fine, here it is
# Extracting Data from XML # In this assignment you will write a Python program somewhat similar to http://www.py4e.com/code3/geoxml.py. # The program will prompt for a URL, read the XML data from that URL using urllib and then parse and extract # the comment counts from the XML data, compute the sum of the numbers in the file. # We provide two files for this assignment. One is a sample file where we give you the sum for your testing and the # other is the actual data you need to process for the assignment. # Sample data: http://py4e-data.dr-chuck.net/comments_42.xml (Sum=2553) # Actual data: http://py4e-data.dr-chuck.net/comments_156437.xml (Sum ends with 70) # You do not need to save these files to your folder since your program will read the data directly from the URL. # Note: Each student will have a distinct data url for the assignment - so only use your own data url for analysis. # Data Format and Approach # The data consists of a number of names and comment counts in XML as follows: # <comment> # <name>Matthias</name> # <count>97</count> # </comment> # You are to look through all the <comment> tags and find the <count> values sum the numbers. The closest sample code that shows # how to parse XML is geoxml.py. But since the nesting of the elements in our data is different than the data we are parsing in # that sample code you will have to make real changes to the code. # To make the code a little simpler, you can use an XPath selector string to look through the entire tree # of XML for any tag named 'count' with the following line of code: # counts = tree.findall('.//count') # Take a look at the Python ElementTree documentation and look for the supported XPath syntax for details. # You could also work from the top of the XML down to the comments node and then loop through the child nodes of the comments node. # Sample Execution # $ python3 solution.py # Enter location: http://py4e-data.dr-chuck.net/comments_42.xml # Retrieving http://py4e-data.dr-chuck.net/comments_42.xml # Retrieved 4189 characters # Count: 50 # Sum: 2... import urllib.parse, urllib.request, urllib.error import xml.etree.ElementTree as ET url = input('Please enter an XML URL to parse: ') url_to_open = urllib.request.urlopen(url).read() tree = ET.parse(url_to_open) root_node = tree.getroot() lst = root_node.findall('comment') for item in lst: print(item)Why am I getting that error? Thanks!