Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.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
解析XML会在python中产生格式不正确的错误_Python_Xml - Fatal编程技术网

解析XML会在python中产生格式不正确的错误

解析XML会在python中产生格式不正确的错误,python,xml,Python,Xml,我正在尝试使用以下代码从url解析XML文档: import xml.etree.ElementTree as ET import urllib.request url = 'https://www.predictit.org/api/marketdata/all/' response = urllib.request.urlopen(url).read().decode('utf-8') tree = ET.fromstring(response) 但是,我得到了错误ParseError:

我正在尝试使用以下代码从url解析XML文档:

import xml.etree.ElementTree as ET
import urllib.request

url = 'https://www.predictit.org/api/marketdata/all/'
response = urllib.request.urlopen(url).read().decode('utf-8')
tree = ET.fromstring(response)
但是,我得到了错误
ParseError:格式不正确(无效令牌):第1行第0列


要将其转换为python对象,我需要做什么?我确信这是一个XML文档,在浏览器中打开时,它的解析看起来很好。

您很可能会得到json。要进行验证,请尝试在HTTPResponse对象上打印
info()
的值,并查看“内容类型”:

response=urllib.request.urlopen(url)
打印(response.info())
要请求XML,请创建一个请求对象并设置标题(打印测试树):

将xml.etree.ElementTree作为ET导入
导入urllib.request
url=”https://www.predictit.org/api/marketdata/all/"
request=urllib.request.request(url,头={“内容类型”:“应用程序/xml”})
response=urllib.request.urlopen(请求)
tree=ET.parse(响应)
打印(ET.tostring(tree.getroot()).decode())
这将打印(截短以适合SO):

2721哪个政党将赢得2020年美国大选。。。。

您很可能会得到json。要进行验证,请尝试在HTTPResponse对象上打印
info()
的值,并查看“内容类型”:

response=urllib.request.urlopen(url)
打印(response.info())
要请求XML,请创建一个请求对象并设置标题(打印测试树):

将xml.etree.ElementTree作为ET导入
导入urllib.request
url=”https://www.predictit.org/api/marketdata/all/"
request=urllib.request.request(url,头={“内容类型”:“应用程序/xml”})
response=urllib.request.urlopen(请求)
tree=ET.parse(响应)
打印(ET.tostring(tree.getroot()).decode())
这将打印(截短以适合SO):

2721哪个政党将赢得2020年美国大选。。。。

“第1行第0列”表明问题就在开头。“我确信这是一个XML文档”-是吗?您的代码是否确实获得了与您在浏览器中看到的相同的
响应
?您是否打印出来并查看了它或在调试器中检查了它?嗯。响应中似乎有很多\n字符,而这些字符不应该在那里。我想更好的问题是为什么会出现这些问题,有没有一种方法可以抓取url来提供可解析的代码?“第1行,第0列”表明问题就在开头。“我确信这是一个XML文档”-是吗?您的代码是否确实获得了与您在浏览器中看到的相同的
响应
?您是否打印出来并查看了它或在调试器中检查了它?嗯。响应中似乎有很多\n字符,而这些字符不应该在那里。我想更好的问题是为什么会出现这些问题,有没有一种方法可以抓取url,从而为我提供可解析的代码?