xml - XMLSyntaxError:需要开始标记,未找到“<”,第 1 行,第 1 列
问题描述
我正在尝试构建一个脚本来查询英国国家电网 API。到目前为止,这是我的代码:
import requests
import pandas as pd
from lxml import etree
def getXML(toDate, fromDate, dayType):
url = "http://marketinformation.natgrid.co.uk/MIPIws-public/public/publicwebservice.asmx"
headers = {'content type': 'application/soap+xml; charset=utf-8'}
body="""
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetPublicationDataWM xmlns="http://www.NationalGrid.com/MIPI/">
<reqObject>
<LatestFlag>N</LatestFlag>
<ApplicableForFlag>Y</ApplicableForFlag>
<ToDate>%s</ToDate>
<FromDate>%s</FromDate>
<DateType>%s</DateType>
<PublicationObjectNameList>
<string>LNG Stock Level</string>
</PublicationObjectNameList>
</reqObject>
</GetPublicationDataWM>
</soap:Body>
</soap:Envelope>
""" % (toDate,fromDate,dayType)
response=requests.post(url,data=body,headers=headers)
return response.content
df = pd.DataFrame(columns=("applicable_at","applicable for","name","value","generated","quality indicator","substituted","created date"))
for pd_date in pd.date_range('2019-01-01','2019-01-03'):
day = pd_date.strftime('%Y-%m-%d')
root = etree.fromstring(getXML(day,day,"normal"))
但我收到以下错误:
File "<string>", line 1
XMLSyntaxError: Start tag expected, '<' not found, line 1, column 1
我已尝试遵循国家电网提供的建议(下面的链接),但仍然返回相同的错误。
解决方案
在第一个开头“<”之前有空格。这是不允许的。
推荐阅读
- node.js - Node Angular JWT 持久连接
- docker - kubernetes 中的 dockerhub 提供未经授权的:不正确的用户名或密码以及正确的凭据
- java - 标签不断更新
- typescript - 将对象转换为联合类型
- python - 如何从 tkinter 中的特定网格位置检索值?
- android - Google SignIn 出现 Null GetDisplayName 问题
- ruby-on-rails - 如何发现为什么 RSpec 需要这么长时间才能启动?
- javascript - 合并数字文本区域自动
- python - pycharm 上的 twilio 由于某种原因无法正常工作
- python - 如何修复python脚本中的延迟/滞后