用Python3从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

我试图从一系列xml数据中提取图形

xml数据如下所示:

<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)