用Python3从xml中提取数据
我试图从一系列xml数据中提取图形 xml数据如下所示:用Python3从xml中提取数据,python,xml,python-3.x,Python,Xml,Python 3.x,我试图从一系列xml数据中提取图形 xml数据如下所示: <commentinfo> <note>This file contains the sample data for testing</note> <comments> <comment> <name>Romina</name> <count>97</count> </comment
<commentinfo>
<note>This file contains the sample data for testing</note>
<comments>
<comment>
<name>Romina</name>
<count>97</count>
</comment>
当我打印计数时
我会得到一个较长的版本:
<Element 'count' at 0x000000000A09FB88>, <Element 'count' at 0x000000000A09FC78>, <Element 'count' at 0x000000000A09FD68>, <Element 'count' at 0x000000000A09FE58>, <Element 'count' at 0x000000000A09FF48>, <Element 'count' at 0x000000000A0A3098>]
,,]
我对这个很陌生,所以我不明白为什么我会得到这些十六进制数,也不知道如何提取实际的数字
我希望有人能帮忙。只要在列表中循环并打印每个元素的文本即可
import urllib.request, urllib.parse, urllib.error
import xml.etree.ElementTree as ET
url = 'http://py4e-data.dr-chuck.net/comments_42.xml'
uh = urllib.request.urlopen(url)
data = uh.read()
tree = ET.fromstring(data)
lst = tree.findall('comments/comment/count')
counts = tree.findall('.//count')
for each in counts:
print(each.text)
这是对计数的一个小小的修改
import urllib.request, urllib.parse, urllib.error
import xml.etree.ElementTree as ET
total= 0
url = 'http://py4e-data.dr-chuck.net/comments_42.xml'
uh = urllib.request.urlopen(url)
data = uh.read()
tree = ET.fromstring(data)
lst = tree.findall('comments/comment/count')
counts = tree.findall('.//count')
total = 0
for count in counts:
total += int(count.text)
print('total: ', total)
计数。text
满足您的要求吗?太棒了!谢谢。请不要只发布代码作为答案,而是解释代码的作用以及它如何解决问题。带有解释的答案通常质量更高,更有可能吸引更多的选票。请注意,如果将其编辑为包含sum=0,现在应该可以使用了。感谢您提供的信息。仍然,使用sum
作为变量名称是一个坏主意。如果可能,请您更正它,因为我得到了所需的输出。虽然此代码片段可能会解决问题,但它没有解释为什么或如何回答问题。请,因为这确实有助于提高你的文章质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。您可以使用该按钮改进此答案,以获得更多选票和声誉!
import urllib.request, urllib.parse, urllib.error
import xml.etree.ElementTree as ET
total= 0
url = 'http://py4e-data.dr-chuck.net/comments_42.xml'
uh = urllib.request.urlopen(url)
data = uh.read()
tree = ET.fromstring(data)
lst = tree.findall('comments/comment/count')
counts = tree.findall('.//count')
total = 0
for count in counts:
total += int(count.text)
print('total: ', total)
import xml.etree.ElementTree as ET
import urllib.request
url= "http://py4e-data.dr-chuck.net/comments_42.xml"
html = urllib.request.urlopen(url)
data=html.read()
#print(data)
tags=ET.fromstring(data)
lst=tags.findall('comments/comment')
x=0
for item in last:
element=int((item.find('count').text))
x=element+x
print(x)