Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python元素树提取值不起作用_Python_Xml_Celementtree - Fatal编程技术网

python元素树提取值不起作用

python元素树提取值不起作用,python,xml,celementtree,Python,Xml,Celementtree,我试图用ElementTree提取中的值,我得到以下错误。谁能帮我看看我做错了什么 from pastebin import PastebinAPI from xml.etree import cElementTree as ET import time x = self.apiobject.pastes_by_user(api_dev_key=self.DEVKEY, api_user_key=self.userkey) print x x = ET.fromstring(x) for

我试图用ElementTree提取
中的值,我得到以下错误。谁能帮我看看我做错了什么

from pastebin import PastebinAPI
from xml.etree import cElementTree as ET
import time

x = self.apiobject.pastes_by_user(api_dev_key=self.DEVKEY, api_user_key=self.userkey)
print x
x = ET.fromstring(x)


for key in list(x):
  self.pastekeys.append(key.find('paste_key').text)
print self.pastekeys
错误输出:
文档元素后的垃圾:第13行第0列

存在于
x

<paste>
<paste_key>afafafaf</paste_key>
<paste_date>1508796842</paste_date>
<paste_title>1508796842</paste_title>
<paste_size>36096</paste_size>
<paste_expire_date>0</paste_expire_date>
<paste_private>2</paste_private>
<paste_format_long>None</paste_format_long>
<paste_format_short>text</paste_format_short>
<paste_url>https://pastebin.com/afafafaf</paste_url>
<paste_hits>0</paste_hits>
</paste>
<paste>
<paste_key>asdfasdf</paste_key>
<paste_date>1508796842</paste_date>
<paste_title>1508796842</paste_title>
<paste_size>36096</paste_size>
<paste_expire_date>0</paste_expire_date>
<paste_private>2</paste_private>
<paste_format_long>None</paste_format_long>
<paste_format_short>text</paste_format_short>
<paste_url>https://pastebin.com/asdfasdf</paste_url>
<paste_hits>0</paste_hits>
</paste>
...

阿法法夫
1508796842
1508796842
36096
0
2.
没有一个
文本
https://pastebin.com/afafafaf
0
asdfasdf
1508796842
1508796842
36096
0
2.
没有一个
文本
https://pastebin.com/asdfasdf
0
...

如果问题是xml结构,请尝试BeautifulSoup

如果您的粘贴是一个名为pastebin_string的字符串,那么它将是这样的:

soup = BeautifulSoup(pastebin_string, "html.parser")
pastes = soup.find_all("paste").
for paste in pastes:
    key = paste.find("paste_key")
    print(key.text)

以下几点对我有用。感谢约翰·戈登指出这一点

        x = self.apiobject.pastes_by_user(api_dev_key=self.DEVKEY, api_user_key=self.userkey)

        x = x.split("</paste>")
        x = [y + "</paste>\r\n" for y in x]

        for key in x[:-1]:
            paste = ET.fromstring(key)
            self.pastekeys.append(paste.find('paste_key').text)
x=self.apiobject.paste_by_user(api_dev_key=self.DEVKEY,api_user_key=self.userkey)
x=x.split(“”)
x=[y+“\r\n”表示x中的y]
对于输入x[:-1]:
粘贴=ET.fromstring(键)
self.pastekeys.append(paste.find('paste_key').text)

查看示例数据,问题可能是
元素不包含在单个根元素中。